<!doctype html><html lang="en">
 <head>
  <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
  <meta content="width=device-width, initial-scale=1, shrink-to-fit=no" name="viewport">
  <title>MediaStream Image Capture</title>
  <meta content="ED" name="w3c-status">
<style data-fill-with="stylesheet">/******************************************************************************
 *                   Style sheet for the W3C specifications                   *
 *
 * Special classes handled by this style sheet include:
 *
 * Indices
 *   - .toc for the Table of Contents (<ol class="toc">)
 *     + <span class="secno"> for the section numbers
 *   - #toc for the Table of Contents (<nav id="toc">)
 *   - ul.index for Indices (<a href="#ref">term</a><span>, in §N.M</span>)
 *   - table.index for Index Tables (e.g. for properties or elements)
 *
 * Structural Markup
 *   - table.data for general data tables
 *     -> use 'scope' attribute, <colgroup>, <thead>, and <tbody> for best results !
 *     -> use <table class='complex data'> for extra-complex tables
 *     -> use <td class='long'> for paragraph-length cell content
 *     -> use <td class='pre'> when manual line breaks/indentation would help readability
 *   - dl.switch for switch statements
 *   - ol.algorithm for algorithms (helps to visualize nesting)
 *   - .figure and .caption (HTML4) and figure and figcaption (HTML5)
 *     -> .sidefigure for right-floated figures
 *   - ins/del
 *
 * Code
 *   - pre and code
 *
 * Special Sections
 *   - .note       for informative notes             (div, p, span, aside, details)
 *   - .example    for informative examples          (div, p, pre, span)
 *   - .issue      for issues                        (div, p, span)
 *   - .assertion  for assertions                    (div, p, span)
 *   - .advisement for loud normative statements     (div, p, strong)
 *   - .annoying-warning for spec obsoletion notices (div, aside, details)
 *
 * Definition Boxes
 *   - pre.def   for WebIDL definitions
 *   - table.def for tables that define other entities (e.g. CSS properties)
 *   - dl.def    for definition lists that define other entitles (e.g. HTML elements)
 *
 * Numbering
 *   - .secno for section numbers in .toc and headings (<span class='secno'>3.2</span>)
 *   - .marker for source-inserted example/figure/issue numbers (<span class='marker'>Issue 4</span>)
 *   - ::before styled for CSS-generated issue/example/figure numbers:
 *     -> Documents wishing to use this only need to add
 *        figcaption::before,
 *        .caption::before { content: "Figure "  counter(figure) " ";  }
 *        .example::before { content: "Example " counter(example) " "; }
 *        .issue::before   { content: "Issue "   counter(issue) " ";   }
 *
 * Header Stuff (ignore, just don't conflict with these classes)
 *   - .head for the header
 *   - .copyright for the copyright
 *
 * Miscellaneous
 *   - .overlarge for things that should be as wide as possible, even if
 *     that overflows the body text area. This can be used on an item or
 *     on its container, depending on the effect desired.
 *     Note that this styling basically doesn't help at all when printing,
 *     since A4 paper isn't much wider than the max-width here.
 *     It's better to design things to fit into a narrower measure if possible.
 *   - js-added ToC jump links (see fixup.js)
 *
 ******************************************************************************/

/******************************************************************************/
/*                                   Body                                     */
/******************************************************************************/

	body {
		counter-reset: example figure issue;

		/* Layout */
		max-width: 50em;               /* limit line length to 50em for readability   */
		margin: 0 auto;                /* center text within page                     */
		padding: 1.6em 1.5em 2em 50px; /* assume 16px font size for downlevel clients */
		padding: 1.6em 1.5em 2em calc(26px + 1.5em); /* leave space for status flag     */

		/* Typography */
		line-height: 1.5;
		font-family: sans-serif;
		widows: 2;
		orphans: 2;
		word-wrap: break-word;
		overflow-wrap: break-word;
		hyphens: auto;

		/* Colors */
		color: black;
		background: white top left fixed no-repeat;
		background-size: 25px auto;
	}


/******************************************************************************/
/*                         Front Matter & Navigation                          */
/******************************************************************************/

/** Header ********************************************************************/

	div.head { margin-bottom: 1em }
	div.head hr { border-style: solid; }

	div.head h1 {
		font-weight: bold;
		margin: 0 0 .1em;
		font-size: 220%;
	}

	div.head h2 { margin-bottom: 1.5em;}

/** W3C Logo ******************************************************************/

	.head .logo {
		float: right;
		margin: 0.4rem 0 0.2rem .4rem;
	}

	.head img[src*="logos/W3C"] {
		display: block;
		border: solid #1a5e9a;
		border-width: .65rem .7rem .6rem;
		border-radius: .4rem;
		background: #1a5e9a;
		color: white;
		font-weight: bold;
	}

	.head a:hover > img[src*="logos/W3C"],
	.head a:focus > img[src*="logos/W3C"] {
		opacity: .8;
	}

	.head a:active > img[src*="logos/W3C"] {
		background: #c00;
		border-color: #c00;
	}

	/* see also additional rules in Link Styling section */

/** Copyright *****************************************************************/

	p.copyright,
	p.copyright small { font-size: small }

/** Back to Top / ToC Toggle **************************************************/

	@media print {
		#toc-nav {
			display: none;
		}
	}
	@media not print {
		#toc-nav {
			position: fixed;
			z-index: 2;
			bottom: 0; left: 0;
			margin: 0;
			min-width: 1.33em;
			border-top-right-radius: 2rem;
			box-shadow: 0 0 2px;
			font-size: 1.5em;
			color: black;
		}
		#toc-nav > a {
			display: block;
			white-space: nowrap;

			height: 1.33em;
			padding: .1em 0.3em;
			margin: 0;

			background: white;
			box-shadow: 0 0 2px;
			border: none;
			border-top-right-radius: 1.33em;
			background: white;
		}
		#toc-nav > #toc-jump {
			padding-bottom: 2em;
			margin-bottom: -1.9em;
		}

		#toc-nav > a:hover,
		#toc-nav > a:focus {
			background: #f8f8f8;
		}
		#toc-nav > a:not(:hover):not(:focus) {
			color: #707070;
		}

		/* statusbar gets in the way on keyboard focus; remove once browsers fix */
		#toc-nav > a[href="#toc"]:not(:hover):focus:last-child {
			padding-bottom: 1.5rem;
		}

		#toc-nav:not(:hover) > a:not(:focus) > span + span {
			/* Ideally this uses :focus-within on #toc-nav */
			display: none;
		}
		#toc-nav > a > span + span {
			padding-right: 0.2em;
		}

		#toc-toggle-inline {
			vertical-align: 0.05em;
			font-size: 80%;
			color: gray;
			color: hsla(203,20%,40%,.7);
			border-style: none;
			background: transparent;
			position: relative;
		}
		#toc-toggle-inline:hover:not(:active),
		#toc-toggle-inline:focus:not(:active) {
			text-shadow: 1px 1px silver;
			top: -1px;
			left: -1px;
		}

		#toc-nav :active {
			color: #C00;
		}
	}

/** ToC Sidebar ***************************************************************/

	/* Floating sidebar */
	@media screen {
		body.toc-sidebar #toc {
			position: fixed;
			top: 0; bottom: 0;
			left: 0;
			width: 23.5em;
			max-width: 80%;
			max-width: calc(100% - 2em - 26px);
			overflow: auto;
			padding: 0 1em;
			padding-left: 42px;
			padding-left: calc(1em + 26px);
			background: inherit;
			background-color: #f7f8f9;
			z-index: 1;
			box-shadow: -.1em 0 .25em rgba(0,0,0,.1) inset;
		}
		body.toc-sidebar #toc h2 {
			margin-top: .8rem;
			font-variant: small-caps;
			font-variant: all-small-caps;
			text-transform: lowercase;
			font-weight: bold;
			color: gray;
			color: hsla(203,20%,40%,.7);
		}
		body.toc-sidebar #toc-jump:not(:focus) {
			width: 0;
			height: 0;
			padding: 0;
			position: absolute;
			overflow: hidden;
		}
	}
	/* Hide main scroller when only the ToC is visible anyway */
	@media screen and (max-width: 28em) {
		body.toc-sidebar {
			overflow: hidden;
		}
	}

	/* Sidebar with its own space */
	@media screen and (min-width: 78em) {
		body:not(.toc-inline) #toc {
			position: fixed;
			top: 0; bottom: 0;
			left: 0;
			width: 23.5em;
			overflow: auto;
			padding: 0 1em;
			padding-left: 42px;
			padding-left: calc(1em + 26px);
			background: inherit;
			background-color: #f7f8f9;
			z-index: 1;
			box-shadow: -.1em 0 .25em rgba(0,0,0,.1) inset;
		}
		body:not(.toc-inline) #toc h2 {
			margin-top: .8rem;
			font-variant: small-caps;
			font-variant: all-small-caps;
			text-transform: lowercase;
			font-weight: bold;
			color: gray;
			color: hsla(203,20%,40%,.7);
		}

		body:not(.toc-inline) {
			padding-left: 29em;
		}
		/* See also Overflow section at the bottom */

		body:not(.toc-inline) #toc-jump:not(:focus) {
			width: 0;
			height: 0;
			padding: 0;
			position: absolute;
			overflow: hidden;
		}
	}
	@media screen and (min-width: 90em) {
		body:not(.toc-inline) {
			margin: 0 4em;
		}
	}

/******************************************************************************/
/*                                Sectioning                                  */
/******************************************************************************/

/** Headings ******************************************************************/

	h1, h2, h3, h4, h5, h6, dt {
		page-break-after: avoid;
		page-break-inside: avoid;
		font: 100% sans-serif;   /* Reset all font styling to clear out UA styles */
		font-family: inherit;    /* Inherit the font family. */
		line-height: 1.2;        /* Keep wrapped headings compact */
		hyphens: manual;         /* Hyphenated headings look weird */
	}

	h2, h3, h4, h5, h6 {
		margin-top: 3rem;
	}

	h1, h2, h3 {
		color: #005A9C;
		background: transparent;
	}

	h1 { font-size: 170%; }
	h2 { font-size: 140%; }
	h3 { font-size: 120%; }
	h4 { font-weight: bold; }
	h5 { font-style: italic; }
	h6 { font-variant: small-caps; }
	dt { font-weight: bold; }

/** Subheadings ***************************************************************/

	h1 + h2,
	#subtitle {
		/* #subtitle is a subtitle in an H2 under the H1 */
		margin-top: 0;
	}
	h2 + h3,
	h3 + h4,
	h4 + h5,
	h5 + h6 {
		margin-top: 1.2em; /* = 1 x line-height */
	}

/** Section divider ***********************************************************/

	:not(.head) > hr {
		font-size: 1.5em;
		text-align: center;
		margin: 1em auto;
		height: auto;
		border: transparent solid 0;
		background: transparent;
	}
	:not(.head) > hr::before {
		content: "\2727\2003\2003\2727\2003\2003\2727";
	}

/******************************************************************************/
/*                            Paragraphs and Lists                            */
/******************************************************************************/

	p {
		margin: 1em 0;
	}

	dd > p:first-child,
	li > p:first-child {
		margin-top: 0;
	}

	ul, ol {
		margin-left: 0;
		padding-left: 2em;
	}

	li {
		margin: 0.25em 0 0.5em;
		padding: 0;
	}

	dl dd {
		margin: 0 0 .5em 2em;
	}

	.head dd + dd { /* compact for header */
		margin-top: -.5em;
	}

	/* Style for algorithms */
	ol.algorithm ol:not(.algorithm),
	.algorithm > ol ol:not(.algorithm) {
	 border-left: 0.5em solid #DEF;
	}

	/* Put nice boxes around each algorithm. */
	[data-algorithm]:not(.heading) {
	  padding: .5em;
	  border: thin solid #ddd; border-radius: .5em;
	  margin: .5em calc(-0.5em - 1px);
	}
	[data-algorithm]:not(.heading) > :first-child {
	  margin-top: 0;
	}
	[data-algorithm]:not(.heading) > :last-child {
	  margin-bottom: 0;
	}

	/* Style for switch/case <dl>s */
	dl.switch > dd > ol.only,
	dl.switch > dd > .only > ol {
	 margin-left: 0;
	}
	dl.switch > dd > ol.algorithm,
	dl.switch > dd > .algorithm > ol {
	 margin-left: -2em;
	}
	dl.switch {
	 padding-left: 2em;
	}
	dl.switch > dt {
	 text-indent: -1.5em;
	 margin-top: 1em;
	}
	dl.switch > dt + dt {
	 margin-top: 0;
	}
	dl.switch > dt::before {
	 content: '\21AA';
	 padding: 0 0.5em 0 0;
	 display: inline-block;
	 width: 1em;
	 text-align: right;
	 line-height: 0.5em;
	}

/** Terminology Markup ********************************************************/


/******************************************************************************/
/*                                 Inline Markup                              */
/******************************************************************************/

/** Terminology Markup ********************************************************/
	dfn   { /* Defining instance */
		font-weight: bolder;
	}
	a > i { /* Instance of term */
		font-style: normal;
	}
	dt dfn code, code.idl {
		font-size: medium;
	}
	dfn var {
		font-style: normal;
	}

/** Change Marking ************************************************************/

	del { color: red;  text-decoration: line-through; }
	ins { color: #080; text-decoration: underline;    }

/** Miscellaneous improvements to inline formatting ***************************/

	sup {
		vertical-align: super;
		font-size: 80%
	}

/******************************************************************************/
/*                                    Code                                    */
/******************************************************************************/

/** General monospace/pre rules ***********************************************/

	pre, code, samp {
		font-family: Menlo, Consolas, "DejaVu Sans Mono", Monaco, monospace;
		font-size: .9em;
		page-break-inside: avoid;
		hyphens: none;
		text-transform: none;
	}
	pre code,
	code code {
		font-size: 100%;
	}

	pre {
		margin-top: 1em;
		margin-bottom: 1em;
		overflow: auto;
	}

/** Inline Code fragments *****************************************************/

  /* Do something nice. */

/******************************************************************************/
/*                                    Links                                   */
/******************************************************************************/

/** General Hyperlinks ********************************************************/

	/* We hyperlink a lot, so make it less intrusive */
	a[href] {
		color: #034575;
		text-decoration: none;
		border-bottom: 1px solid #707070;
		/* Need a bit of extending for it to look okay */
		padding: 0 1px 0;
		margin: 0 -1px 0;
	}
	a:visited {
		border-bottom-color: #BBB;
	}

	/* Use distinguishing colors when user is interacting with the link */
	a[href]:focus,
	a[href]:hover {
		background: #f8f8f8;
		background: rgba(75%, 75%, 75%, .25);
		border-bottom-width: 3px;
		margin-bottom: -2px;
	}
	a[href]:active {
		color: #C00;
		border-color: #C00;
	}

	/* Backout above styling for W3C logo */
	.head .logo,
	.head .logo a {
		border: none;
		text-decoration: none;
		background: transparent;
	}

/******************************************************************************/
/*                                    Images                                  */
/******************************************************************************/

	img {
		border-style: none;
	}

	/* For autogen numbers, add
	   .caption::before, figcaption::before { content: "Figure " counter(figure) ". "; }
	*/

	figure, .figure, .sidefigure {
		page-break-inside: avoid;
		text-align: center;
		margin: 2.5em 0;
	}
	.figure img,    .sidefigure img,    figure img,
	.figure object, .sidefigure object, figure object {
		max-width: 100%;
		margin: auto;
	}
	.figure pre, .sidefigure pre, figure pre {
		text-align: left;
		display: table;
		margin: 1em auto;
	}
	.figure table, figure table {
		margin: auto;
	}
	@media screen and (min-width: 20em) {
		.sidefigure {
			float: right;
			width: 50%;
			margin: 0 0 0.5em 0.5em
		}
	}
	.caption, figcaption, caption {
		font-style: italic;
		font-size: 90%;
	}
	.caption::before, figcaption::before, figcaption > .marker {
		font-weight: bold;
	}
	.caption, figcaption {
		counter-increment: figure;
	}

	/* DL list is indented 2em, but figure inside it is not */
	dd > .figure, dd > figure { margin-left: -2em }

/******************************************************************************/
/*                             Colored Boxes                                  */
/******************************************************************************/

	.issue, .note, .example, .assertion, .advisement, blockquote {
		padding: .5em;
		border: .5em;
		border-left-style: solid;
		page-break-inside: avoid;
	}
	span.issue, span.note {
		padding: .1em .5em .15em;
		border-right-style: solid;
	}

	.issue,
	.note,
	.example,
	.advisement,
	.assertion,
	blockquote {
		margin: 1em auto;
	}
	.note  > p:first-child,
	.issue > p:first-child,
	blockquote > :first-child {
		margin-top: 0;
	}
	blockquote > :last-child {
		margin-bottom: 0;
	}

/** Blockquotes ***************************************************************/

	blockquote {
		border-color: silver;
	}

/** Open issue ****************************************************************/

	.issue {
		border-color: #E05252;
		background: #FBE9E9;
		counter-increment: issue;
		overflow: auto;
	}
	.issue::before, .issue > .marker {
		text-transform: uppercase;
		color: #AE1E1E;
		padding-right: 1em;
		text-transform: uppercase;
	}
	/* Add .issue::before { content: "Issue " counter(issue) " "; } for autogen numbers,
	   or use class="marker" to mark up the issue number in source. */

/** Example *******************************************************************/

	.example {
		border-color: #E0CB52;
		background: #FCFAEE;
		counter-increment: example;
		overflow: auto;
		clear: both;
	}
	.example::before, .example > .marker {
		text-transform: uppercase;
		color: #827017;
		min-width: 7.5em;
		display: block;
	}
	/* Add .example::before { content: "Example " counter(example) " "; } for autogen numbers,
	   or use class="marker" to mark up the example number in source. */

/** Non-normative Note ********************************************************/

	.note {
		border-color: #52E052;
		background: #E9FBE9;
		overflow: auto;
	}

	.note::before, .note > .marker,
	details.note > summary::before,
	details.note > summary > .marker {
		text-transform: uppercase;
		display: block;
		color: hsl(120, 70%, 30%);
	}
	/* Add .note::before { content: "Note"; } for autogen label,
	   or use class="marker" to mark up the label in source. */

	details.note > summary {
		display: block;
		color: hsl(120, 70%, 30%);
	}
	details.note[open] > summary {
		border-bottom: 1px silver solid;
	}

/** Assertion Box *************************************************************/
	/*  for assertions in algorithms */

	.assertion {
		border-color: #AAA;
		background: #EEE;
	}

/** Advisement Box ************************************************************/
	/*  for attention-grabbing normative statements */

	.advisement {
		border-color: orange;
		border-style: none solid;
		background: #FFEECC;
	}
	strong.advisement {
		display: block;
		text-align: center;
	}
	.advisement > .marker {
		color: #B35F00;
	}

/** Spec Obsoletion Notice ****************************************************/
	/* obnoxious obsoletion notice for older/abandoned specs. */

	details {
		display: block;
	}
	summary {
		font-weight: bolder;
	}

	.annoying-warning:not(details),
	details.annoying-warning:not([open]) > summary,
	details.annoying-warning[open] {
		background: #fdd;
		color: red;
		font-weight: bold;
		padding: .75em 1em;
		border: thick red;
		border-style: solid;
		border-radius: 1em;
	}
	.annoying-warning :last-child {
		margin-bottom: 0;
	}

@media not print {
	details.annoying-warning[open] {
		position: fixed;
		left: 1em;
		right: 1em;
		bottom: 1em;
		z-index: 1000;
	}
}

	details.annoying-warning:not([open]) > summary {
		text-align: center;
	}

/** Entity Definition Boxes ***************************************************/

	.def {
		padding: .5em 1em;
		background: #DEF;
		margin: 1.2em 0;
		border-left: 0.5em solid #8CCBF2;
	}

/******************************************************************************/
/*                                    Tables                                  */
/******************************************************************************/

	th, td {
		text-align: left;
		text-align: start;
	}

/** Property/Descriptor Definition Tables *************************************/

	table.def {
		/* inherits .def box styling, see above */
		width: 100%;
		border-spacing: 0;
	}

	table.def td,
	table.def th {
		padding: 0.5em;
		vertical-align: baseline;
		border-bottom: 1px solid #bbd7e9;
	}

	table.def > tbody > tr:last-child th,
	table.def > tbody > tr:last-child td {
		border-bottom: 0;
	}

	table.def th {
		font-style: italic;
		font-weight: normal;
		padding-left: 1em;
		width: 3em;
	}

	/* For when values are extra-complex and need formatting for readability */
	table td.pre {
		white-space: pre-wrap;
	}

	/* A footnote at the bottom of a def table */
	table.def           td.footnote {
		padding-top: 0.6em;
	}
	table.def           td.footnote::before {
		content: " ";
		display: block;
		height: 0.6em;
		width: 4em;
		border-top: thin solid;
	}

/** Data tables (and properly marked-up index tables) *************************/
	/*
		 <table class="data"> highlights structural relationships in a table
		 when correct markup is used (e.g. thead/tbody, th vs. td, scope attribute)

		 Use class="complex data" for particularly complicated tables --
		 (This will draw more lines: busier, but clearer.)

		 Use class="long" on table cells with paragraph-like contents
		 (This will adjust text alignment accordingly.)
		 Alternately use class="longlastcol" on tables, to have the last column assume "long".
	*/

	table {
		word-wrap: normal;
		overflow-wrap: normal;
		hyphens: manual;
	}

	table.data,
	table.index {
		margin: 1em auto;
		border-collapse: collapse;
		border: hidden;
		width: 100%;
	}
	table.data caption,
	table.index caption {
		max-width: 50em;
		margin: 0 auto 1em;
	}

	table.data td,  table.data th,
	table.index td, table.index th {
		padding: 0.5em 1em;
		border-width: 1px;
		border-color: silver;
		border-top-style: solid;
	}

	table.data thead td:empty {
		padding: 0;
		border: 0;
	}

	table.data  thead,
	table.index thead,
	table.data  tbody,
	table.index tbody {
		border-bottom: 2px solid;
	}

	table.data colgroup,
	table.index colgroup {
		border-left: 2px solid;
	}

	table.data  tbody th:first-child,
	table.index tbody th:first-child  {
		border-right: 2px solid;
		border-top: 1px solid silver;
		padding-right: 1em;
	}

	table.data th[colspan],
	table.data td[colspan] {
		text-align: center;
	}

	table.complex.data th,
	table.complex.data td {
		border: 1px solid silver;
		text-align: center;
	}

	table.data.longlastcol td:last-child,
	table.data td.long {
	 vertical-align: baseline;
	 text-align: left;
	}

	table.data img {
		vertical-align: middle;
	}


/*
Alternate table alignment rules

	table.data,
	table.index {
		text-align: center;
	}

	table.data  thead th[scope="row"],
	table.index thead th[scope="row"] {
		text-align: right;
	}

	table.data  tbody th:first-child,
	table.index tbody th:first-child  {
		text-align: right;
	}

Possible extra rowspan handling

	table.data  tbody th[rowspan]:not([rowspan='1']),
	table.index tbody th[rowspan]:not([rowspan='1']),
	table.data  tbody td[rowspan]:not([rowspan='1']),
	table.index tbody td[rowspan]:not([rowspan='1']) {
		border-left: 1px solid silver;
	}

	table.data  tbody th[rowspan]:first-child,
	table.index tbody th[rowspan]:first-child,
	table.data  tbody td[rowspan]:first-child,
	table.index tbody td[rowspan]:first-child{
		border-left: 0;
		border-right: 1px solid silver;
	}
*/

/******************************************************************************/
/*                                  Indices                                   */
/******************************************************************************/


/** Table of Contents *********************************************************/

	.toc a {
		/* More spacing; use padding to make it part of the click target. */
		padding-top: 0.1rem;
		/* Larger, more consistently-sized click target */
		display: block;
		/* Reverse color scheme */
		color: black;
		border-color: #3980B5;
		border-bottom-width: 3px !important;
		margin-bottom: 0px !important;
	}
	.toc a:visited {
		border-color: #054572;
	}
	.toc a:not(:focus):not(:hover) {
		/* Allow colors to cascade through from link styling */
		border-bottom-color: transparent;
	}

	.toc, .toc ol, .toc ul, .toc li {
		list-style: none; /* Numbers must be inlined into source */
		/* because generated content isn't search/selectable and markers can't do multilevel yet */
		margin:  0;
		padding: 0;
		line-height: 1.1rem; /* consistent spacing */
	}

	/* ToC not indented until third level, but font style & margins show hierarchy */
	.toc > li             { font-weight: bold;   }
	.toc > li li          { font-weight: normal; }
	.toc > li li li       { font-size:   95%;    }
	.toc > li li li li    { font-size:   90%;    }
	.toc > li li li li .secno { font-size: 85%; }
	.toc > li li li li li { font-size:   85%;    }
	.toc > li li li li li .secno { font-size: 100%; }

	/* @supports not (display:grid) { */
		.toc > li             { margin: 1.5rem 0;    }
		.toc > li li          { margin: 0.3rem 0;    }
		.toc > li li li       { margin-left: 2rem;   }

		/* Section numbers in a column of their own */
		.toc .secno {
			float: left;
			width: 4rem;
			white-space: nowrap;
		}

		.toc li {
			clear: both;
		}

		:not(li) > .toc              { margin-left:  5rem; }
		.toc .secno                  { margin-left: -5rem; }
		.toc > li li li .secno       { margin-left: -7rem; }
		.toc > li li li li .secno    { margin-left: -9rem; }
		.toc > li li li li li .secno { margin-left: -11rem; }

		/* Tighten up indentation in narrow ToCs */
		@media (max-width: 30em) {
			:not(li) > .toc              { margin-left:  4rem; }
			.toc .secno                  { margin-left: -4rem; }
			.toc > li li li              { margin-left:  1rem; }
			.toc > li li li .secno       { margin-left: -5rem; }
			.toc > li li li li .secno    { margin-left: -6rem; }
			.toc > li li li li li .secno { margin-left: -7rem; }
		}
	/* } */

	@supports (display:grid) and (display:contents) {
		/* Use #toc over .toc to override non-@supports rules. */
		#toc {
			display: grid;
			align-content: start;
			grid-template-columns: auto 1fr;
			grid-column-gap: 1rem;
			column-gap: 1rem;
			grid-row-gap: .6rem;
			row-gap: .6rem;
		}
		#toc h2 {
			grid-column: 1 / -1;
			margin-bottom: 0;
		}
		#toc ol,
		#toc li,
		#toc a {
			display: contents;
			/* Switch <a> to subgrid when supported */
		}
		#toc span {
			margin: 0;
		}
		#toc > .toc > li > a > span {
			/* The spans of the top-level list,
			   comprising the first items of each top-level section. */
			margin-top: 1.1rem;
		}
		#toc#toc .secno { /* Ugh, need more specificity to override base.css */
			grid-column: 1;
			width: auto;
			margin-left: 0;
		}
		#toc .content {
			grid-column: 2;
			width: auto;
			margin-right: 1rem;
		}
		#toc .content:hover {
			background: rgba(75%, 75%, 75%, .25);
			border-bottom: 3px solid #054572;
			margin-bottom: -3px;
		}
		#toc li li li .content {
			margin-left: 1rem;
		}
		#toc li li li li .content {
			margin-left: 2rem;
		}
	}


/** Index *********************************************************************/

	/* Index Lists: Layout */
	ul.index       { margin-left: 0; columns: 15em; text-indent: 1em hanging; }
	ul.index li    { margin-left: 0; list-style: none; break-inside: avoid; }
	ul.index li li { margin-left: 1em }
	ul.index dl    { margin-top: 0; }
	ul.index dt    { margin: .2em 0 .2em 20px;}
	ul.index dd    { margin: .2em 0 .2em 40px;}
	/* Index Lists: Typography */
	ul.index ul,
	ul.index dl { font-size: smaller; }
	@media not print {
		ul.index li span {
			white-space: nowrap;
			color: transparent; }
		ul.index li a:hover + span,
		ul.index li a:focus + span {
			color: #707070;
		}
	}

/** Index Tables *****************************************************/
	/* See also the data table styling section, which this effectively subclasses */

	table.index {
		font-size: small;
		border-collapse: collapse;
		border-spacing: 0;
		text-align: left;
		margin: 1em 0;
	}

	table.index td,
	table.index th {
		padding: 0.4em;
	}

	table.index tr:hover td:not([rowspan]),
	table.index tr:hover th:not([rowspan]) {
		background: #f7f8f9;
	}

	/* The link in the first column in the property table (formerly a TD) */
	table.index th:first-child a {
		font-weight: bold;
	}

/******************************************************************************/
/*                                    Print                                   */
/******************************************************************************/

	@media print {
		/* Pages have their own margins. */
		html {
			margin: 0;
		}
		/* Serif for print. */
		body {
			font-family: serif;
		}
	}
	@page {
		margin: 1.5cm 1.1cm;
	}

/******************************************************************************/
/*                                    Legacy                                  */
/******************************************************************************/

	/* This rule is inherited from past style sheets. No idea what it's for. */
	.hide { display: none }



/******************************************************************************/
/*                             Overflow Control                               */
/******************************************************************************/

	.figure .caption, .sidefigure .caption, figcaption {
		/* in case figure is overlarge, limit caption to 50em */
		max-width: 50rem;
		margin-left: auto;
		margin-right: auto;
	}
	.overlarge {
		/* Magic to create good table positioning:
		   "content column" is 50ems wide at max; less on smaller screens.
		   Extra space (after ToC + content) is empty on the right.

		   1. When table < content column, centers table in column.
		   2. When content < table < available, left-aligns.
		   3. When table > available, fills available + scroll bar.
		*/ 
		display: grid;
		grid-template-columns: minmax(0, 50em);
	}
	.overlarge > table {
		/* limit preferred width of table */
		max-width: 50em;
		margin-left: auto;
		margin-right: auto;
	}

	@media (min-width: 55em) {
		.overlarge {
			margin-right: calc(13px + 26.5rem - 50vw);
			max-width: none;
		}
	}
	@media screen and (min-width: 78em) {
		body:not(.toc-inline) .overlarge {
			/* 30.5em body padding 50em content area */
			margin-right: calc(40em - 50vw) !important;
		}
	}
	@media screen and (min-width: 90em) {
		body:not(.toc-inline) .overlarge {
			/* 4em html margin 30.5em body padding 50em content area */
			margin-right: calc(84.5em - 100vw) !important;
		}
	}

	@media not print {
		.overlarge {
			overflow-x: auto;
			/* See Lea Verou's explanation background-attachment:
			 * http://lea.verou.me/2012/04/background-attachment-local/
			 *
			background: top left  / 4em 100% linear-gradient(to right,  #ffffff, rgba(255, 255, 255, 0)) local,
			            top right / 4em 100% linear-gradient(to left, #ffffff, rgba(255, 255, 255, 0)) local,
			            top left  / 1em 100% linear-gradient(to right,  #c3c3c5, rgba(195, 195, 197, 0)) scroll,
			            top right / 1em 100% linear-gradient(to left, #c3c3c5, rgba(195, 195, 197, 0)) scroll,
			            white;
			background-repeat: no-repeat;
			*/
		}
	}
</style>
<style>
    body {
      background: url("https://www.w3.org/StyleSheets/TR/logo-ED") top left no-repeat white;
      background-attachment: fixed;
    }
  </style>
  <link href="https://www.w3.org/TR/image-capture/" rel="canonical">
<style>
table {
  border-collapse: collapse;
  border-left-style: hidden;
  border-right-style: hidden;
  text-align: left;
}
table caption {
  font-weight: bold;
  padding: 3px;
  text-align: left;
}
table td, table th {
  border: 1px solid black;
  padding: 3px;
}
</style>
<style>/* style-md-lists */

/* This is a weird hack for me not yet following the commonmark spec
   regarding paragraph and lists. */
[data-md] > :first-child {
    margin-top: 0;
}
[data-md] > :last-child {
    margin-bottom: 0;
}</style>
<style>/* style-selflinks */

.heading, .issue, .note, .example, li, dt {
    position: relative;
}
a.self-link {
    position: absolute;
    top: 0;
    left: calc(-1 * (3.5rem - 26px));
    width: calc(3.5rem - 26px);
    height: 2em;
    text-align: center;
    border: none;
    transition: opacity .2s;
    opacity: .5;
}
a.self-link:hover {
    opacity: 1;
}
.heading > a.self-link {
    font-size: 83%;
}
li > a.self-link {
    left: calc(-1 * (3.5rem - 26px) - 2em);
}
dfn > a.self-link {
    top: auto;
    left: auto;
    opacity: 0;
    width: 1.5em;
    height: 1.5em;
    background: gray;
    color: white;
    font-style: normal;
    transition: opacity .2s, background-color .2s, color .2s;
}
dfn:hover > a.self-link {
    opacity: 1;
}
dfn > a.self-link:hover {
    color: black;
}

a.self-link::before            { content: "¶"; }
.heading > a.self-link::before { content: "§"; }
dfn > a.self-link::before      { content: "#"; }</style>
<style>/* style-counters */

body {
    counter-reset: example figure issue;
}
.issue {
    counter-increment: issue;
}
.issue:not(.no-marker)::before {
    content: "Issue " counter(issue);
}

.example {
    counter-increment: example;
}
.example:not(.no-marker)::before {
    content: "Example " counter(example);
}
.invalid.example:not(.no-marker)::before,
.illegal.example:not(.no-marker)::before {
    content: "Invalid Example" counter(example);
}

figcaption {
    counter-increment: figure;
}
figcaption:not(.no-marker)::before {
    content: "Figure " counter(figure) " ";
}</style>
<style>/* style-autolinks */

.css.css, .property.property, .descriptor.descriptor {
    color: #005a9c;
    font-size: inherit;
    font-family: inherit;
}
.css::before, .property::before, .descriptor::before {
    content: "‘";
}
.css::after, .property::after, .descriptor::after {
    content: "’";
}
.property, .descriptor {
    /* Don't wrap property and descriptor names */
    white-space: nowrap;
}
.type { /* CSS value <type> */
    font-style: italic;
}
pre .property::before, pre .property::after {
    content: "";
}
[data-link-type="property"]::before,
[data-link-type="propdesc"]::before,
[data-link-type="descriptor"]::before,
[data-link-type="value"]::before,
[data-link-type="function"]::before,
[data-link-type="at-rule"]::before,
[data-link-type="selector"]::before,
[data-link-type="maybe"]::before {
    content: "‘";
}
[data-link-type="property"]::after,
[data-link-type="propdesc"]::after,
[data-link-type="descriptor"]::after,
[data-link-type="value"]::after,
[data-link-type="function"]::after,
[data-link-type="at-rule"]::after,
[data-link-type="selector"]::after,
[data-link-type="maybe"]::after {
    content: "’";
}

[data-link-type].production::before,
[data-link-type].production::after,
.prod [data-link-type]::before,
.prod [data-link-type]::after {
    content: "";
}

[data-link-type=element],
[data-link-type=element-attr] {
    font-family: Menlo, Consolas, "DejaVu Sans Mono", monospace;
    font-size: .9em;
}
[data-link-type=element]::before { content: "<" }
[data-link-type=element]::after  { content: ">" }

[data-link-type=biblio] {
    white-space: pre;
}</style>
<style>/* style-dfn-panel */

.dfn-panel {
    position: absolute;
    z-index: 35;
    height: auto;
    width: -webkit-fit-content;
    width: fit-content;
    max-width: 300px;
    max-height: 500px;
    overflow: auto;
    padding: 0.5em 0.75em;
    font: small Helvetica Neue, sans-serif, Droid Sans Fallback;
    background: #DDDDDD;
    color: black;
    border: outset 0.2em;
}
.dfn-panel:not(.on) { display: none; }
.dfn-panel * { margin: 0; padding: 0; text-indent: 0; }
.dfn-panel > b { display: block; }
.dfn-panel a { color: black; }
.dfn-panel a:not(:hover) { text-decoration: none !important; border-bottom: none !important; }
.dfn-panel > b + b { margin-top: 0.25em; }
.dfn-panel ul { padding: 0; }
.dfn-panel li { list-style: inside; }
.dfn-panel.activated {
    display: inline-block;
    position: fixed;
    left: .5em;
    bottom: 2em;
    margin: 0 auto;
    max-width: calc(100vw - 1.5em - .4em - .5em);
    max-height: 30vh;
}

.dfn-paneled { cursor: pointer; }
</style>
<style>/* style-syntax-highlighting */
pre.idl.highlight { color: #708090; }
.highlight:not(.idl) { background: hsl(24, 20%, 95%); }
code.highlight { padding: .1em; border-radius: .3em; }
pre.highlight, pre > code.highlight { display: block; padding: 1em; margin: .5em 0; overflow: auto; border-radius: 0; }
c-[a] { color: #990055 } /* Keyword.Declaration */
c-[b] { color: #990055 } /* Keyword.Type */
c-[c] { color: #708090 } /* Comment */
c-[d] { color: #708090 } /* Comment.Multiline */
c-[e] { color: #0077aa } /* Name.Attribute */
c-[f] { color: #669900 } /* Name.Tag */
c-[g] { color: #222222 } /* Name.Variable */
c-[k] { color: #990055 } /* Keyword */
c-[l] { color: #000000 } /* Literal */
c-[m] { color: #000000 } /* Literal.Number */
c-[n] { color: #0077aa } /* Name */
c-[o] { color: #999999 } /* Operator */
c-[p] { color: #999999 } /* Punctuation */
c-[s] { color: #a67f59 } /* Literal.String */
c-[t] { color: #a67f59 } /* Literal.String.Single */
c-[u] { color: #a67f59 } /* Literal.String.Double */
c-[cp] { color: #708090 } /* Comment.Preproc */
c-[c1] { color: #708090 } /* Comment.Single */
c-[cs] { color: #708090 } /* Comment.Special */
c-[kc] { color: #990055 } /* Keyword.Constant */
c-[kn] { color: #990055 } /* Keyword.Namespace */
c-[kp] { color: #990055 } /* Keyword.Pseudo */
c-[kr] { color: #990055 } /* Keyword.Reserved */
c-[ld] { color: #000000 } /* Literal.Date */
c-[nc] { color: #0077aa } /* Name.Class */
c-[no] { color: #0077aa } /* Name.Constant */
c-[nd] { color: #0077aa } /* Name.Decorator */
c-[ni] { color: #0077aa } /* Name.Entity */
c-[ne] { color: #0077aa } /* Name.Exception */
c-[nf] { color: #0077aa } /* Name.Function */
c-[nl] { color: #0077aa } /* Name.Label */
c-[nn] { color: #0077aa } /* Name.Namespace */
c-[py] { color: #0077aa } /* Name.Property */
c-[ow] { color: #999999 } /* Operator.Word */
c-[mb] { color: #000000 } /* Literal.Number.Bin */
c-[mf] { color: #000000 } /* Literal.Number.Float */
c-[mh] { color: #000000 } /* Literal.Number.Hex */
c-[mi] { color: #000000 } /* Literal.Number.Integer */
c-[mo] { color: #000000 } /* Literal.Number.Oct */
c-[sb] { color: #a67f59 } /* Literal.String.Backtick */
c-[sc] { color: #a67f59 } /* Literal.String.Char */
c-[sd] { color: #a67f59 } /* Literal.String.Doc */
c-[se] { color: #a67f59 } /* Literal.String.Escape */
c-[sh] { color: #a67f59 } /* Literal.String.Heredoc */
c-[si] { color: #a67f59 } /* Literal.String.Interpol */
c-[sx] { color: #a67f59 } /* Literal.String.Other */
c-[sr] { color: #a67f59 } /* Literal.String.Regex */
c-[ss] { color: #a67f59 } /* Literal.String.Symbol */
c-[vc] { color: #0077aa } /* Name.Variable.Class */
c-[vg] { color: #0077aa } /* Name.Variable.Global */
c-[vi] { color: #0077aa } /* Name.Variable.Instance */
c-[il] { color: #000000 } /* Literal.Number.Integer.Long */
</style>
 <body class="h-entry">
  <div class="head">
   <p data-fill-with="logo"><a class="logo" href="https://www.w3.org/"> <img alt="W3C" height="48" src="https://www.w3.org/StyleSheets/TR/2016/logos/W3C" width="72"> </a> </p>
   <h1 class="p-name no-ref" id="title">MediaStream Image Capture</h1>
   <h2 class="no-num no-toc no-ref heading settled" id="subtitle"><span class="content">Editor’s Draft, <time class="dt-updated" datetime="1970-01-01">1 January 1970</time></span></h2>
   <div data-fill-with="spec-metadata">
    <dl>
     <dt>This version:
     <dd><a class="u-url" href="https://w3c.github.io/mediacapture-image/">https://w3c.github.io/mediacapture-image/</a>
     <dt>Latest published version:
     <dd><a href="https://www.w3.org/TR/image-capture/">https://www.w3.org/TR/image-capture/</a>
     <dt>Previous Versions:
     <dd><a href="https://www.w3.org/TR/2017/WD-image-capture-20170104/" rel="prev">https://www.w3.org/TR/2017/WD-image-capture-20170104/</a>
     <dd><a href rel="prev"></a>
     <dt>Feedback:
     <dd><span><a href="mailto:public-media-capture@w3.org?subject=%5Bimage-capture%5D%20YOUR%20TOPIC%20HERE">public-media-capture@w3.org</a> with subject line “<kbd>[image-capture] <i data-lt>… message topic …</i></kbd>” (<a href="https://lists.w3.org/Archives/Public/public-media-capture/" rel="discussion">archives</a>)</span>
     <dt class="editor">Editors:
     <dd class="editor p-author h-card vcard" data-editor-id="54271"><span class="p-name fn">Giridhar Mandyam</span> (<span class="p-org org">Qualcomm Innovation Center Inc.</span>)
     <dd class="editor p-author h-card vcard" data-editor-id="82825"><a class="p-name fn u-email email" href="mailto:mcasas@google.com">Miguel Casas-Sanchez</a> (<span class="p-org org">Google Inc.</span>)
     <dt>Participate:
     <dd><a href="https://lists.w3.org/Archives/Public/public-webrtc/">Mailing list</a>
     <dd><a href="https://github.com/w3c/mediacapture-image">GitHub repo</a> (<a href="https://github.com/w3c/mediacapture-image/issues/new">new issue</a>, <a href="https://github.com/w3c/mediacapture-image/issues">open issues</a>)
     <dd>
     <dt>Implementation:
     <dd><a href="https://github.com/w3c/mediacapture-image/blob/master/implementation-status.md">Implementation Status</a>
     <dd><a href="http://caniuse.com/#feat=imagecapture">Can I use Image Capture?</a>
     <dd>
    </dl>
   </div>
   <div data-fill-with="warning"></div>
   <p class="copyright" data-fill-with="copyright"><a href="https://www.w3.org/Consortium/Legal/ipr-notice#Copyright">Copyright</a> © 1970 <a href="https://www.w3.org/"><abbr title="World Wide Web Consortium">W3C</abbr></a><sup>®</sup> (<a href="https://www.csail.mit.edu/"><abbr title="Massachusetts Institute of Technology">MIT</abbr></a>, <a href="https://www.ercim.eu/"><abbr title="European Research Consortium for Informatics and Mathematics">ERCIM</abbr></a>, <a href="https://www.keio.ac.jp/">Keio</a>, <a href="https://ev.buaa.edu.cn/">Beihang</a>). W3C <a href="https://www.w3.org/Consortium/Legal/ipr-notice#Legal_Disclaimer">liability</a>, <a href="https://www.w3.org/Consortium/Legal/ipr-notice#W3C_Trademarks">trademark</a> and <a href="https://www.w3.org/Consortium/Legal/copyright-documents">document use</a> rules apply. </p>
   <hr title="Separator for header">
  </div>
  <div class="p-summary" data-fill-with="abstract">
   <h2 class="no-num no-toc no-ref heading settled" id="abstract"><span class="content">Abstract</span></h2>
   <p>This document specifies methods and camera settings to produce photographic image capture. The source of images is, or can be referenced via a <code class="idl"><a data-link-type="idl" href="https://www.w3.org/TR/mediacapture-streams/#mediastreamtrack" id="ref-for-mediastreamtrack">MediaStreamTrack</a></code>.</p>
  </div>
  <h2 class="no-num no-toc no-ref heading settled" id="sotd"><span class="content">Status of this document</span></h2>
  <div data-fill-with="status">
   <p> This is a public copy of the editors’ draft.
	It is provided for discussion only and may change at any moment.
	Its publication here does not imply endorsement of its contents by W3C.
	Don’t cite this document other than as work in progress. </p>
   <p> If you wish to make comments regarding this document, please <a href="image-capture/issues/new">file an issue on the specification repository</a> or send them to <a href="mailto:public-media-capture@w3.org">public-media-capture@w3.org</a> (<a href="mailto:public-media-capture-request@w3.org?subject=subscribe">subscribe</a>, <a href="https://lists.w3.org/Archives/Public/public-media-capture/">archives</a>). </p>
   <p> This document was produced by the <a href="https://www.w3.org/2011/04/webrtc/">Web Real-Time Communications Working Group</a>. </p>
   <p> This document was produced by groups operating under
  the <a href="https://www.w3.org/Consortium/Patent-Policy/">W3C Patent Policy</a>.
  W3C maintains a <a href="https://www.w3.org/2004/01/pp-impl/47318/status" rel="disclosure">public list of any patent disclosures</a> made in connection with the deliverables of the group;
  that page also includes instructions for disclosing a patent.
  An individual who has actual knowledge of a patent which the individual believes contains <a href="https://www.w3.org/Consortium/Patent-Policy/#def-essential">Essential Claim(s)</a> must disclose the information in accordance with <a href="https://www.w3.org/Consortium/Patent-Policy/#sec-Disclosure">section  6 of the <abbr title="World Wide Web Consortium">W3C</abbr> Patent Policy</a>. </p>
   <p> This document is governed by the <a href="https://www.w3.org/2019/Process-20190301/" id="w3c_process_revision">1 March 2019 W3C Process Document</a>. </p>
   <p></p>
  </div>
  <div data-fill-with="at-risk"></div>
  <nav data-fill-with="table-of-contents" id="toc">
   <h2 class="no-num no-toc no-ref" id="contents">Table of Contents</h2>
   <ol class="toc" role="directory">
    <li><a href="#introduction"><span class="secno">1</span> <span class="content">Introduction</span></a>
    <li><a href="#securityandprivacy"><span class="secno">2</span> <span class="content">Security and Privacy Considerations</span></a>
    <li>
     <a href="#imagecaptureapi"><span class="secno">3</span> <span class="content">Image Capture API</span></a>
     <ol class="toc">
      <li><a href="#imagecapture-attributes"><span class="secno">3.1</span> <span class="content">Attributes</span></a>
      <li><a href="#imagecapture-methods"><span class="secno">3.2</span> <span class="content">Methods</span></a>
     </ol>
    <li>
     <a href="#photocapabilities-section"><span class="secno">4</span> <span class="content">PhotoCapabilities</span></a>
     <ol class="toc">
      <li><a href="#photocapabilities-attributes"><span class="secno">4.1</span> <span class="content">Attributes</span></a>
     </ol>
    <li>
     <a href="#photosettings-section"><span class="secno">5</span> <span class="content">PhotoSettings</span></a>
     <ol class="toc">
      <li><a href="#photosettings-members"><span class="secno">5.1</span> <span class="content">Members</span></a>
     </ol>
    <li>
     <a href="#mediasettingsrange-section"><span class="secno">6</span> <span class="content"><code class="idl"><span>MediaSettingsRange</span></code></span></a>
     <ol class="toc">
      <li><a href="#mediasettingsrange-attributes"><span class="secno">6.1</span> <span class="content">Attributes</span></a>
     </ol>
    <li>
     <a href="#redeyereduction-section"><span class="secno">7</span> <span class="content"><code class="idl"><span>RedEyeReduction</span></code></span></a>
     <ol class="toc">
      <li><a href="#redeyereduction-values"><span class="secno">7.1</span> <span class="content">Values</span></a>
     </ol>
    <li>
     <a href="#filllightmode-section"><span class="secno">8</span> <span class="content"><code class="idl"><span>FillLightMode</span></code></span></a>
     <ol class="toc">
      <li><a href="#filllightmode-values"><span class="secno">8.1</span> <span class="content">Values</span></a>
     </ol>
    <li>
     <a href="#extensions"><span class="secno">9</span> <span class="content">Extensions</span></a>
     <ol class="toc">
      <li>
       <a href="#mediatracksupportedconstraints-section"><span class="secno">9.1</span> <span class="content"><code class="idl"><span>MediaTrackSupportedConstraints</span></code> dictionary</span></a>
       <ol class="toc">
        <li><a href="#mediatracksupportedconstraints-members"><span class="secno">9.1.1</span> <span class="content">Members</span></a>
       </ol>
      <li>
       <a href="#mediatrackcapabilities-section"><span class="secno">9.2</span> <span class="content"><code class="idl"><span>MediaTrackCapabilities</span></code> dictionary</span></a>
       <ol class="toc">
        <li><a href="#mediatrackcapabilities-members"><span class="secno">9.2.1</span> <span class="content">Members</span></a>
       </ol>
      <li>
       <a href="#mediatrackconstraintset-section"><span class="secno">9.3</span> <span class="content"><code class="idl"><span>MediaTrackConstraintSet</span></code> dictionary</span></a>
       <ol class="toc">
        <li><a href="#mediatrackconstraintset-members"><span class="secno">9.3.1</span> <span class="content">Members</span></a>
       </ol>
      <li>
       <a href="#mediatracksettings-section"><span class="secno">9.4</span> <span class="content"><code class="idl"><span>MediaTrackSettings</span></code> dictionary</span></a>
       <ol class="toc">
        <li><a href="#mediatracksettings-members"><span class="secno">9.4.1</span> <span class="content">Members</span></a>
       </ol>
      <li>
       <a href="#additional-constrainable-props"><span class="secno">9.5</span> <span class="content">Additional Constrainable Properties</span></a>
       <ol class="toc">
        <li><a href="#constraintpoint2d-members"><span class="secno">9.5.1</span> <span class="content">Members</span></a>
       </ol>
     </ol>
    <li><a href="#constrainable-properties"><span class="secno">10</span> <span class="content">Photo Capabilities and Constrainable Properties</span></a>
    <li>
     <a href="#meteringmode-section"><span class="secno">11</span> <span class="content"><code class="idl"><span>MeteringMode</span></code></span></a>
     <ol class="toc">
      <li><a href="#meteringmode-values"><span class="secno">11.1</span> <span class="content">Values</span></a>
     </ol>
    <li>
     <a href="#point2d-section"><span class="secno">12</span> <span class="content"><code class="idl"><span>Point2D</span></code></span></a>
     <ol class="toc">
      <li><a href="#point2d-members"><span class="secno">12.1</span> <span class="content">Members</span></a>
     </ol>
    <li>
     <a href="#examples"><span class="secno">13</span> <span class="content">Examples</span></a>
     <ol class="toc">
      <li><a href="#example1"><span class="secno">13.1</span> <span class="content">Update camera zoom and <code class="idl"><span>takePhoto()</span></code></span></a>
      <li><a href="#example2"><span class="secno">13.2</span> <span class="content">Repeated grabbing of a frame with <code class="idl"><span>grabFrame()</span></code></span></a>
      <li><a href="#example3"><span class="secno">13.3</span> <span class="content">Grabbing a Frame and Post-Processing</span></a>
      <li><a href="#example4"><span class="secno">13.4</span> <span class="content">Update camera focus distance and <code class="idl"><span>takePhoto()</span></code></span></a>
     </ol>
    <li>
     <a href="#conformance"><span class="secno"></span> <span class="content">Conformance</span></a>
     <ol class="toc">
      <li><a href="#conventions"><span class="secno"></span> <span class="content">Document conventions</span></a>
      <li><a href="#conformant-algorithms"><span class="secno"></span> <span class="content">Conformant Algorithms</span></a>
      <li><a href="#conformance-classes"><span class="secno"></span> <span class="content">Conformance Classes</span></a>
     </ol>
    <li>
     <a href="#index"><span class="secno"></span> <span class="content">Index</span></a>
     <ol class="toc">
      <li><a href="#index-defined-here"><span class="secno"></span> <span class="content">Terms defined by this specification</span></a>
      <li><a href="#index-defined-elsewhere"><span class="secno"></span> <span class="content">Terms defined by reference</span></a>
     </ol>
    <li>
     <a href="#references"><span class="secno"></span> <span class="content">References</span></a>
     <ol class="toc">
      <li><a href="#normative"><span class="secno"></span> <span class="content">Normative References</span></a>
      <li><a href="#informative"><span class="secno"></span> <span class="content">Informative References</span></a>
     </ol>
    <li><a href="#idl-index"><span class="secno"></span> <span class="content">IDL Index</span></a>
   </ol>
  </nav>
  <main>
   <h2 class="heading settled" data-level="1" id="introduction"><span class="secno">1. </span><span class="content">Introduction</span><a class="self-link" href="#introduction"></a></h2>
   <p>The API defined in this document captures images from a photographic device referenced through a valid <code class="idl"><a data-link-type="idl" href="https://www.w3.org/TR/mediacapture-streams/#mediastreamtrack" id="ref-for-mediastreamtrack①">MediaStreamTrack</a></code> <a data-link-type="biblio" href="#biblio-getusermedia">[GETUSERMEDIA]</a>. The produced image can be in the form of a <code class="idl"><a data-link-type="idl" href="https://w3c.github.io/FileAPI/#dfn-Blob" id="ref-for-dfn-Blob">Blob</a></code> (see <code class="idl"><a data-link-type="idl" href="#dom-imagecapture-takephoto" id="ref-for-dom-imagecapture-takephoto">takePhoto()</a></code> method) or as a <code class="idl"><a data-link-type="idl" href="https://html.spec.whatwg.org/multipage/imagebitmap-and-animations.html#imagebitmap" id="ref-for-imagebitmap">ImageBitmap</a></code> (see <code class="idl"><a data-link-type="idl" href="#dom-imagecapture-grabframe" id="ref-for-dom-imagecapture-grabframe">grabFrame()</a></code>).</p>
   <p>Reading capabilities and settings and applying constraints is done in one of two ways depending on whether it impacts the video <code class="idl"><a data-link-type="idl" href="https://www.w3.org/TR/mediacapture-streams/#mediastreamtrack" id="ref-for-mediastreamtrack②">MediaStreamTrack</a></code> or not.  Photo-specific capabilities and current settings can be retrieved via <code class="idl"><a data-link-type="idl" href="#dom-imagecapture-getphotocapabilities" id="ref-for-dom-imagecapture-getphotocapabilities">getPhotoCapabilities()</a></code>/<code class="idl"><a data-link-type="idl" href="#dom-imagecapture-getphotosettings" id="ref-for-dom-imagecapture-getphotosettings">getPhotoSettings()</a></code> and configured via <code class="idl"><a data-link-type="idl" href="#dom-imagecapture-takephoto" id="ref-for-dom-imagecapture-takephoto①">takePhoto()</a></code>'s <code class="idl"><a data-link-type="idl" href="#dictdef-photosettings" id="ref-for-dictdef-photosettings">PhotoSettings</a></code> argument.  Manipulating video-related capabilities, current settings and constraints is done via the MediaStreamTrack <a href="#extensions">extension mechanism</a>.</p>
   <h2 class="heading settled" data-level="2" id="securityandprivacy"><span class="secno">2. </span><span class="content">Security and Privacy Considerations</span><a class="self-link" href="#securityandprivacy"></a></h2>
   <p>The <a href="https://w3c.github.io/mediacapture-main/#privacy-and-security-considerations"> privacy and security considerations</a> discussed in <a data-link-type="biblio" href="#biblio-getusermedia">[GETUSERMEDIA]</a> apply to this extension specification.</p>
   <p>Moreover, implementors should take care to prevent additional leakage of privacy-sensitive data from captured images.
For instance, embedding the user’s location in the metadata of the digitzed image (e.g. EXIF) might transmit more private data than the user is expecting.</p>
   <h2 class="heading settled" data-level="3" id="imagecaptureapi"><span class="secno">3. </span><span class="content">Image Capture API</span><a class="self-link" href="#imagecaptureapi"></a></h2>
   <p>The User Agent must support Promises in order to implement the Image Capture API.  Any <code class="idl"><a data-link-type="idl" href="https://heycam.github.io/webidl/#idl-promise" id="ref-for-idl-promise">Promise</a></code> object is assumed to have a resolver object, with <code>resolve()</code> and <code>reject()</code> methods associated with it.</p>
<pre class="idl highlight def">[<a class="idl-code" data-link-type="extended-attribute" href="https://heycam.github.io/webidl/#Exposed" id="ref-for-Exposed"><c- g>Exposed</c-></a>=<c- n>Window</c->]
<c- b>interface</c-> <dfn class="dfn-paneled idl-code" data-dfn-type="interface" data-export id="imagecapture"><code><c- g>ImageCapture</c-></code></dfn> {
   <a class="idl-code" data-link-type="constructor" href="#dom-imagecapture-imagecapture" id="ref-for-dom-imagecapture-imagecapture"><c- g>constructor</c-></a>(<a class="n" data-link-type="idl-name" href="https://www.w3.org/TR/mediacapture-streams/#mediastreamtrack" id="ref-for-mediastreamtrack③"><c- n>MediaStreamTrack</c-></a> <dfn class="idl-code" data-dfn-for="ImageCapture/ImageCapture(videoTrack), ImageCapture/constructor(videoTrack)" data-dfn-type="argument" data-export id="dom-imagecapture-imagecapture-videotrack-videotrack"><code><c- g>videoTrack</c-></code><a class="self-link" href="#dom-imagecapture-imagecapture-videotrack-videotrack"></a></dfn>);
   <c- b>Promise</c->&lt;<a class="n" data-link-type="idl-name" href="https://w3c.github.io/FileAPI/#dfn-Blob" id="ref-for-dfn-Blob①"><c- n>Blob</c-></a>>              <a class="idl-code" data-link-type="method" href="#dom-imagecapture-takephoto" id="ref-for-dom-imagecapture-takephoto②"><c- g>takePhoto</c-></a>(<c- b>optional</c-> <a class="n" data-link-type="idl-name" href="#dictdef-photosettings" id="ref-for-dictdef-photosettings①"><c- n>PhotoSettings</c-></a> <dfn class="dfn-paneled idl-code" data-dfn-for="ImageCapture/takePhoto(photoSettings), ImageCapture/takePhoto()" data-dfn-type="argument" data-export id="dom-imagecapture-takephoto-photosettings-photosettings"><code><c- g>photoSettings</c-></code></dfn> = {});
   <c- b>Promise</c->&lt;<a class="n" data-link-type="idl-name" href="#photocapabilities" id="ref-for-photocapabilities"><c- n>PhotoCapabilities</c-></a>> <a class="idl-code" data-link-type="method" href="#dom-imagecapture-getphotocapabilities" id="ref-for-dom-imagecapture-getphotocapabilities①"><c- g>getPhotoCapabilities</c-></a>();
   <c- b>Promise</c->&lt;<a class="n" data-link-type="idl-name" href="#dictdef-photosettings" id="ref-for-dictdef-photosettings②"><c- n>PhotoSettings</c-></a>>     <a class="idl-code" data-link-type="method" href="#dom-imagecapture-getphotosettings" id="ref-for-dom-imagecapture-getphotosettings①"><c- g>getPhotoSettings</c-></a>();

   <c- b>Promise</c->&lt;<a class="n" data-link-type="idl-name" href="https://html.spec.whatwg.org/multipage/imagebitmap-and-animations.html#imagebitmap" id="ref-for-imagebitmap①"><c- n>ImageBitmap</c-></a>>       <a class="idl-code" data-link-type="method" href="#dom-imagecapture-grabframe" id="ref-for-dom-imagecapture-grabframe①"><c- g>grabFrame</c-></a>();

   <c- b>readonly</c-> <c- b>attribute</c-> <a class="n" data-link-type="idl-name" href="https://www.w3.org/TR/mediacapture-streams/#mediastreamtrack" id="ref-for-mediastreamtrack④"><c- n>MediaStreamTrack</c-></a> <a class="idl-code" data-link-type="attribute" data-readonly data-type="MediaStreamTrack" href="#dom-imagecapture-track" id="ref-for-dom-imagecapture-track"><c- g>track</c-></a>;
};
</pre>
   <div class="note" role="note"> <code class="idl"><a data-link-type="idl" href="#dom-imagecapture-takephoto" id="ref-for-dom-imagecapture-takephoto③">takePhoto()</a></code> returns a captured image encoded in the form of a <code class="idl"><a data-link-type="idl" href="https://w3c.github.io/FileAPI/#dfn-Blob" id="ref-for-dfn-Blob②">Blob</a></code>, whereas <code class="idl"><a data-link-type="idl" href="#dom-imagecapture-grabframe" id="ref-for-dom-imagecapture-grabframe②">grabFrame()</a></code> returns a snapshot of the <code class="idl"><a data-link-type="idl" href="#dom-imagecapture-track" id="ref-for-dom-imagecapture-track①">track</a></code> video feed in the form of a non-encoded <code class="idl"><a data-link-type="idl" href="https://html.spec.whatwg.org/multipage/imagebitmap-and-animations.html#imagebitmap" id="ref-for-imagebitmap②">ImageBitmap</a></code>. </div>
   <h3 class="heading settled" data-level="3.1" id="imagecapture-attributes"><span class="secno">3.1. </span><span class="content">Attributes</span><a class="self-link" href="#imagecapture-attributes"></a></h3>
   <dl class="domintro">
    <dt><dfn class="dfn-paneled idl-code" data-dfn-for="ImageCapture" data-dfn-type="attribute" data-export id="dom-imagecapture-track"><code>track</code></dfn>, <span> of type <a data-link-type="idl-name" href="https://www.w3.org/TR/mediacapture-streams/#mediastreamtrack" id="ref-for-mediastreamtrack⑤">MediaStreamTrack</a>, readonly</span>
    <dd>The <code class="idl"><a data-link-type="idl" href="https://www.w3.org/TR/mediacapture-streams/#mediastreamtrack" id="ref-for-mediastreamtrack⑥">MediaStreamTrack</a></code> passed into the constructor.
   </dl>
   <h3 class="heading settled" data-level="3.2" id="imagecapture-methods"><span class="secno">3.2. </span><span class="content">Methods</span><a class="self-link" href="#imagecapture-methods"></a></h3>
   <dl class="domintro">
    <dt><dfn class="dfn-paneled idl-code" data-dfn-for="ImageCapture" data-dfn-type="constructor" data-export data-lt="ImageCapture(videoTrack)|constructor(videoTrack)" id="dom-imagecapture-imagecapture"><code>ImageCapture(MediaStreamTrack videoTrack)</code></dfn>
    <dd>
     <table class="parameters">
      <tbody>
       <tr>
        <th>Parameter
        <th>Type
        <th>Nullable
        <th>Optional
        <th>Description
       <tr>
        <td class="prmName">videoTrack
        <td class="prmType"><code class="idl"><a data-link-type="idl" href="https://www.w3.org/TR/mediacapture-streams/#mediastreamtrack" id="ref-for-mediastreamtrack⑦">MediaStreamTrack</a></code>
        <td class="prmNullFalse"><span aria-label="False" role="img">✘</span>
        <td class="prmOptFalse"><span aria-label="False" role="img">✘</span>
        <td class="prmDesc">The <code class="idl"><a data-link-type="idl" href="https://www.w3.org/TR/mediacapture-streams/#mediastreamtrack" id="ref-for-mediastreamtrack⑧">MediaStreamTrack</a></code> to be used as source of data. This will be the value of the <code class="idl"><a data-link-type="idl" href="#dom-imagecapture-track" id="ref-for-dom-imagecapture-track②">track</a></code> attribute. The <code class="idl"><a data-link-type="idl" href="https://www.w3.org/TR/mediacapture-streams/#mediastreamtrack" id="ref-for-mediastreamtrack⑨">MediaStreamTrack</a></code> passed to the constructor MUST have its <code class="idl"><a data-link-type="idl" href="https://www.w3.org/TR/mediacapture-streams/#widl-MediaStreamTrack-kind" id="ref-for-widl-MediaStreamTrack-kind">kind</a></code> attribute set to <code>"video"</code> otherwise a <code class="idl"><a data-link-type="idl" href="https://heycam.github.io/webidl/#idl-DOMException" id="ref-for-idl-DOMException">DOMException</a></code> of type <code class="idl"><a data-link-type="idl" href="https://heycam.github.io/webidl/#notsupportederror" id="ref-for-notsupportederror">NotSupportedError</a></code> will be thrown.
     </table>
    <dt><dfn class="dfn-paneled idl-code" data-dfn-for="ImageCapture" data-dfn-type="method" data-export data-lt="takePhoto(photoSettings)|takePhoto()" id="dom-imagecapture-takephoto"><code>takePhoto(optional PhotoSettings photoSettings)</code></dfn>
    <dd>
      <code class="idl"><a data-link-type="idl" href="#dom-imagecapture-takephoto" id="ref-for-dom-imagecapture-takephoto④">takePhoto()</a></code> produces the result of a single photographic exposure using the video capture device sourcing the <code class="idl"><a data-link-type="idl" href="#dom-imagecapture-track" id="ref-for-dom-imagecapture-track③">track</a></code> and including any <code class="idl"><a data-link-type="idl" href="#dictdef-photosettings" id="ref-for-dictdef-photosettings③">PhotoSettings</a></code> configured, returning an encoded image in the form of a <code class="idl"><a data-link-type="idl" href="https://w3c.github.io/FileAPI/#dfn-Blob" id="ref-for-dfn-Blob③">Blob</a></code> if successful. When this method is invoked, the user agent MUST run the following steps: 
     <ol>
      <li>If the <code class="idl"><a data-link-type="idl" href="https://www.w3.org/TR/mediacapture-streams/#widl-MediaStreamTrack-readyState" id="ref-for-widl-MediaStreamTrack-readyState">readyState</a></code> of <code class="idl"><a data-link-type="idl" href="#dom-imagecapture-track" id="ref-for-dom-imagecapture-track④">track</a></code> provided in the constructor is not <code class="idl"><a data-link-type="idl" href="https://www.w3.org/TR/mediacapture-streams/#idl-def-MediaStreamTrackState.live" id="ref-for-idl-def-MediaStreamTrackState.live">live</a></code>, return <a data-link-type="dfn" href="https://www.w3.org/2001/tag/doc/promises-guide/#a-promise-rejected-with" id="ref-for-a-promise-rejected-with">a promise rejected with</a> a new <code class="idl"><a data-link-type="idl" href="https://heycam.github.io/webidl/#idl-DOMException" id="ref-for-idl-DOMException①">DOMException</a></code> whose name is <code class="idl"><a data-link-type="idl" href="https://heycam.github.io/webidl/#invalidstateerror" id="ref-for-invalidstateerror">InvalidStateError</a></code>, and abort these steps. 
      <li>Let <var>p</var> be a new promise.
      <li>
       Run the following steps in parallel: 
       <ol>
        <li>
         Gather data from the <code class="idl"><a data-link-type="idl" href="#dom-imagecapture-track" id="ref-for-dom-imagecapture-track⑤">track</a></code> underlying source with the defined <code class="idl"><a data-link-type="idl" href="#dom-imagecapture-takephoto-photosettings-photosettings" id="ref-for-dom-imagecapture-takephoto-photosettings-photosettings">photoSettings</a></code> and into a <code class="idl"><a data-link-type="idl" href="https://w3c.github.io/FileAPI/#dfn-Blob" id="ref-for-dfn-Blob④">Blob</a></code> containing a single still image. The method of doing this will depend on the underlying device. 
         <div class="note" role="note"> Devices MAY temporarily stop streaming data, reconfigure themselves with the appropriate photo settings, take the photo, and then resume streaming.  In this case, the stopping and restarting of streaming SHOULD cause <code class="idl"><a data-link-type="idl" href="https://www.w3.org/TR/mediacapture-streams/#widl-MediaStreamTrack-onmute" id="ref-for-widl-MediaStreamTrack-onmute">onmute</a></code> and <code class="idl"><a data-link-type="idl" href="https://www.w3.org/TR/mediacapture-streams/#widl-MediaStreamTrack-onunmute" id="ref-for-widl-MediaStreamTrack-onunmute">onunmute</a></code> events to fire on the track in question. </div>
        <li>If the operation cannot be completed for any reason (for example, upon invocation of multiple <code class="idl"><a data-link-type="idl" href="#dom-imagecapture-takephoto" id="ref-for-dom-imagecapture-takephoto⑤">takePhoto()</a></code> method calls in rapid succession), then reject <var>p</var> with a new <code class="idl"><a data-link-type="idl" href="https://heycam.github.io/webidl/#idl-DOMException" id="ref-for-idl-DOMException②">DOMException</a></code> whose name is <code class="idl"><a data-link-type="idl" href="https://heycam.github.io/webidl/#unknownerror" id="ref-for-unknownerror">UnknownError</a></code>, and abort these steps.
        <li>Resolve <var>p</var> with the Blob object.
       </ol>
      <li>Return <var>p</var>.
     </ol>
     <table class="parameters">
      <tbody>
       <tr>
        <th>Parameter
        <th>Type
        <th>Nullable
        <th>Optional
        <th>Description
       <tr>
        <td class="prmName">settings
        <td class="prmType"><code class="idl"><a data-link-type="idl" href="#dictdef-photosettings" id="ref-for-dictdef-photosettings④">PhotoSettings</a></code>
        <td class="prmNullTrue"><span aria-label="True" role="img">✔</span>
        <td class="prmOptFalse"><span aria-label="False" role="img">✘</span>
        <td class="prmDesc">The <code class="idl"><a data-link-type="idl" href="#dictdef-photosettings" id="ref-for-dictdef-photosettings⑤">PhotoSettings</a></code> dictionary to be applied.
     </table>
    <dt><dfn class="dfn-paneled idl-code" data-dfn-for="ImageCapture" data-dfn-type="method" data-export id="dom-imagecapture-getphotocapabilities"><code>getPhotoCapabilities()</code></dfn>
    <dd>
      <code class="idl"><a data-link-type="idl" href="#dom-imagecapture-getphotocapabilities" id="ref-for-dom-imagecapture-getphotocapabilities②">getPhotoCapabilities()</a></code> is used to retrieve the ranges of available configuration options, if any. When this method is invoked, the user agent MUST run the following steps: 
     <ol>
      <li>If the <code class="idl"><a data-link-type="idl" href="https://www.w3.org/TR/mediacapture-streams/#widl-MediaStreamTrack-readyState" id="ref-for-widl-MediaStreamTrack-readyState①">readyState</a></code> of <code class="idl"><a data-link-type="idl" href="#dom-imagecapture-track" id="ref-for-dom-imagecapture-track⑥">track</a></code> provided in the constructor is not <code class="idl"><a data-link-type="idl" href="https://www.w3.org/TR/mediacapture-streams/#idl-def-MediaStreamTrackState.live" id="ref-for-idl-def-MediaStreamTrackState.live①">live</a></code>, return <a data-link-type="dfn" href="https://www.w3.org/2001/tag/doc/promises-guide/#a-promise-rejected-with" id="ref-for-a-promise-rejected-with①">a promise rejected with</a> a new <code class="idl"><a data-link-type="idl" href="https://heycam.github.io/webidl/#idl-DOMException" id="ref-for-idl-DOMException③">DOMException</a></code> whose name is <code class="idl"><a data-link-type="idl" href="https://heycam.github.io/webidl/#invalidstateerror" id="ref-for-invalidstateerror①">InvalidStateError</a></code>, and abort these steps. 
      <li>Let <var>p</var> be a new promise.
      <li>
       Run the following steps in parallel: 
       <ol>
        <li>Gather data from <code class="idl"><a data-link-type="idl" href="#dom-imagecapture-track" id="ref-for-dom-imagecapture-track⑦">track</a></code> into a <code class="idl"><a data-link-type="idl" href="#photocapabilities" id="ref-for-photocapabilities①">PhotoCapabilities</a></code> object containing the available capabilities of the device, including ranges where appropriate. The method of doing this will depend on the underlying device. 
        <li>If the data cannot be gathered for any reason (for example, the <code class="idl"><a data-link-type="idl" href="https://www.w3.org/TR/mediacapture-streams/#mediastreamtrack" id="ref-for-mediastreamtrack①⓪">MediaStreamTrack</a></code> being ended asynchronously), then reject <var>p</var> with a new <code class="idl"><a data-link-type="idl" href="https://heycam.github.io/webidl/#idl-DOMException" id="ref-for-idl-DOMException④">DOMException</a></code> whose name is <code class="idl"><a data-link-type="idl" href="https://heycam.github.io/webidl/#operationerror" id="ref-for-operationerror">OperationError</a></code>, and abort these steps.
        <li>Resolve <var>p</var> with the <code class="idl"><a data-link-type="idl" href="#photocapabilities" id="ref-for-photocapabilities②">PhotoCapabilities</a></code> object.
       </ol>
      <li>Return <var>p</var>.
     </ol>
    <dt><dfn class="dfn-paneled idl-code" data-dfn-for="ImageCapture" data-dfn-type="method" data-export id="dom-imagecapture-getphotosettings"><code>getPhotoSettings()</code></dfn>
    <dd>
      <code class="idl"><a data-link-type="idl" href="#dom-imagecapture-getphotosettings" id="ref-for-dom-imagecapture-getphotosettings②">getPhotoSettings()</a></code> is used to retrieve the current configuration settings values, if any. When this method is invoked, the user agent MUST run the following steps: 
     <ol>
      <li>If the <code class="idl"><a data-link-type="idl" href="https://www.w3.org/TR/mediacapture-streams/#widl-MediaStreamTrack-readyState" id="ref-for-widl-MediaStreamTrack-readyState②">readyState</a></code> of <code class="idl"><a data-link-type="idl" href="#dom-imagecapture-track" id="ref-for-dom-imagecapture-track⑧">track</a></code> provided in the constructor is not <code class="idl"><a data-link-type="idl" href="https://www.w3.org/TR/mediacapture-streams/#idl-def-MediaStreamTrackState.live" id="ref-for-idl-def-MediaStreamTrackState.live②">live</a></code>, return <a data-link-type="dfn" href="https://www.w3.org/2001/tag/doc/promises-guide/#a-promise-rejected-with" id="ref-for-a-promise-rejected-with②">a promise rejected with</a> a new <code class="idl"><a data-link-type="idl" href="https://heycam.github.io/webidl/#idl-DOMException" id="ref-for-idl-DOMException⑤">DOMException</a></code> whose name is <code class="idl"><a data-link-type="idl" href="https://heycam.github.io/webidl/#invalidstateerror" id="ref-for-invalidstateerror②">InvalidStateError</a></code>, and abort these steps. 
      <li>Let <var>p</var> be a new promise.
      <li>
       Run the following steps in parallel: 
       <ol>
        <li>Gather data from <code class="idl"><a data-link-type="idl" href="#dom-imagecapture-track" id="ref-for-dom-imagecapture-track⑨">track</a></code> into a <code class="idl"><a data-link-type="idl" href="#dictdef-photosettings" id="ref-for-dictdef-photosettings⑥">PhotoSettings</a></code> containing the current conditions in which the device is found. The method of doing this will depend on the underlying device. 
        <li>If the data cannot be gathered for any reason (for example, the <code class="idl"><a data-link-type="idl" href="https://www.w3.org/TR/mediacapture-streams/#mediastreamtrack" id="ref-for-mediastreamtrack①①">MediaStreamTrack</a></code> being ended asynchronously), then reject <var>p</var> with a new <code class="idl"><a data-link-type="idl" href="https://heycam.github.io/webidl/#idl-DOMException" id="ref-for-idl-DOMException⑥">DOMException</a></code> whose name is <code class="idl"><a data-link-type="idl" href="https://heycam.github.io/webidl/#operationerror" id="ref-for-operationerror①">OperationError</a></code>, and abort these steps.
        <li>Resolve <var>p</var> with the <code class="idl"><a data-link-type="idl" href="#dictdef-photosettings" id="ref-for-dictdef-photosettings⑦">PhotoSettings</a></code> object.
       </ol>
      <li>Return <var>p</var>.
     </ol>
    <dt><dfn class="dfn-paneled idl-code" data-dfn-for="ImageCapture" data-dfn-type="method" data-export id="dom-imagecapture-grabframe"><code>grabFrame()</code></dfn>
    <dd>
     <code class="idl"><a data-link-type="idl" href="#dom-imagecapture-grabframe" id="ref-for-dom-imagecapture-grabframe③">grabFrame()</a></code> takes a snapshot of the live video being held in <code class="idl"><a data-link-type="idl" href="#dom-imagecapture-track" id="ref-for-dom-imagecapture-track①⓪">track</a></code>, returning an <code class="idl"><a data-link-type="idl" href="https://html.spec.whatwg.org/multipage/imagebitmap-and-animations.html#imagebitmap" id="ref-for-imagebitmap③">ImageBitmap</a></code> if successful. <code class="idl"><a data-link-type="idl" href="#dom-imagecapture-grabframe" id="ref-for-dom-imagecapture-grabframe④">grabFrame()</a></code> returns data only once upon being invoked. When this method is invoked, the user agent MUST run the following steps: 
     <ol>
      <li>If the <code class="idl"><a data-link-type="idl" href="https://www.w3.org/TR/mediacapture-streams/#widl-MediaStreamTrack-readyState" id="ref-for-widl-MediaStreamTrack-readyState③">readyState</a></code> of <code class="idl"><a data-link-type="idl" href="#dom-imagecapture-track" id="ref-for-dom-imagecapture-track①①">track</a></code> provided in the constructor is not <code class="idl"><a data-link-type="idl" href="https://www.w3.org/TR/mediacapture-streams/#idl-def-MediaStreamTrackState.live" id="ref-for-idl-def-MediaStreamTrackState.live③">live</a></code>, return <a data-link-type="dfn" href="https://www.w3.org/2001/tag/doc/promises-guide/#a-promise-rejected-with" id="ref-for-a-promise-rejected-with③">a promise rejected with</a> a new <code class="idl"><a data-link-type="idl" href="https://heycam.github.io/webidl/#idl-DOMException" id="ref-for-idl-DOMException⑦">DOMException</a></code> whose name is <code class="idl"><a data-link-type="idl" href="https://heycam.github.io/webidl/#invalidstateerror" id="ref-for-invalidstateerror③">InvalidStateError</a></code>, and abort these steps.
      <li>Let <var>p</var> be a new promise.
      <li>
       Run the following steps in parallel: 
       <ol>
        <li>Gather data from <code class="idl"><a data-link-type="idl" href="#dom-imagecapture-track" id="ref-for-dom-imagecapture-track①②">track</a></code> into an <code class="idl"><a data-link-type="idl" href="https://html.spec.whatwg.org/multipage/imagebitmap-and-animations.html#imagebitmap" id="ref-for-imagebitmap④">ImageBitmap</a></code> object. The <var>width</var> and <var>height</var> of the <code class="idl"><a data-link-type="idl" href="https://html.spec.whatwg.org/multipage/imagebitmap-and-animations.html#imagebitmap" id="ref-for-imagebitmap⑤">ImageBitmap</a></code> object are derived from the constraints of <code class="idl"><a data-link-type="idl" href="#dom-imagecapture-track" id="ref-for-dom-imagecapture-track①③">track</a></code>. 
        <li>If the operation cannot be completed for any reason (for example, upon invocation of multiple <code class="idl"><a data-link-type="idl" href="#dom-imagecapture-grabframe" id="ref-for-dom-imagecapture-grabframe⑤">grabFrame()</a></code>/<code class="idl"><a data-link-type="idl" href="#dom-imagecapture-takephoto" id="ref-for-dom-imagecapture-takephoto⑥">takePhoto()</a></code> method calls in rapid succession), then reject <var>p</var> with a new <code class="idl"><a data-link-type="idl" href="https://heycam.github.io/webidl/#idl-DOMException" id="ref-for-idl-DOMException⑧">DOMException</a></code> whose name is <code class="idl"><a data-link-type="idl" href="https://heycam.github.io/webidl/#unknownerror" id="ref-for-unknownerror①">UnknownError</a></code>, and abort these steps.
        <li>Resolve <var>p</var> with the <code class="idl"><a data-link-type="idl" href="https://html.spec.whatwg.org/multipage/imagebitmap-and-animations.html#imagebitmap" id="ref-for-imagebitmap⑥">ImageBitmap</a></code> object.
       </ol>
      <li>Return <var>p</var>.
     </ol>
   </dl>
   <h2 class="heading settled" data-level="4" id="photocapabilities-section"><span class="secno">4. </span><span class="content">PhotoCapabilities</span><a class="self-link" href="#photocapabilities-section"></a></h2>
<pre class="idl highlight def">[<a class="idl-code" data-link-type="extended-attribute" href="https://heycam.github.io/webidl/#Exposed" id="ref-for-Exposed①"><c- g>Exposed</c-></a>=<c- n>Window</c->] <c- b>interface</c-> <dfn class="dfn-paneled idl-code" data-dfn-type="interface" data-export id="photocapabilities"><code><c- g>PhotoCapabilities</c-></code></dfn> {
  <c- b>readonly</c-> <c- b>attribute</c-> <a class="n" data-link-type="idl-name" href="#enumdef-redeyereduction" id="ref-for-enumdef-redeyereduction"><c- n>RedEyeReduction</c-></a>            <a class="idl-code" data-link-type="attribute" data-readonly data-type="RedEyeReduction" href="#dom-photocapabilities-redeyereduction" id="ref-for-dom-photocapabilities-redeyereduction"><c- g>redEyeReduction</c-></a>;
  <c- b>readonly</c-> <c- b>attribute</c-> <a class="n" data-link-type="idl-name" href="#mediasettingsrange" id="ref-for-mediasettingsrange"><c- n>MediaSettingsRange</c-></a>         <a class="idl-code" data-link-type="attribute" data-readonly data-type="MediaSettingsRange" href="#dom-photocapabilities-imageheight" id="ref-for-dom-photocapabilities-imageheight"><c- g>imageHeight</c-></a>;
  <c- b>readonly</c-> <c- b>attribute</c-> <a class="n" data-link-type="idl-name" href="#mediasettingsrange" id="ref-for-mediasettingsrange①"><c- n>MediaSettingsRange</c-></a>         <a class="idl-code" data-link-type="attribute" data-readonly data-type="MediaSettingsRange" href="#dom-photocapabilities-imagewidth" id="ref-for-dom-photocapabilities-imagewidth"><c- g>imageWidth</c-></a>;
  <c- b>readonly</c-> <c- b>attribute</c-> <c- b>FrozenArray</c->&lt;<a class="n" data-link-type="idl-name" href="#enumdef-filllightmode" id="ref-for-enumdef-filllightmode"><c- n>FillLightMode</c-></a>> <a class="idl-code" data-link-type="attribute" data-readonly data-type="FrozenArray<FillLightMode>" href="#dom-photocapabilities-filllightmode" id="ref-for-dom-photocapabilities-filllightmode"><c- g>fillLightMode</c-></a>;
};
</pre>
   <h3 class="heading settled" data-level="4.1" id="photocapabilities-attributes"><span class="secno">4.1. </span><span class="content">Attributes</span><a class="self-link" href="#photocapabilities-attributes"></a></h3>
   <dl class="domintro">
    <dt><dfn class="dfn-paneled idl-code" data-dfn-for="PhotoCapabilities" data-dfn-type="attribute" data-export id="dom-photocapabilities-redeyereduction"><code>redEyeReduction</code></dfn>, <span> of type <a data-link-type="idl-name" href="#enumdef-redeyereduction" id="ref-for-enumdef-redeyereduction①">RedEyeReduction</a>, readonly</span>
    <dd>The <a data-link-type="dfn" href="#red-eye-reduction" id="ref-for-red-eye-reduction">red eye reduction</a> capacity of the source.
    <dt><dfn class="dfn-paneled idl-code" data-dfn-for="PhotoCapabilities" data-dfn-type="attribute" data-export id="dom-photocapabilities-imageheight"><code>imageHeight</code></dfn>, <span> of type <a data-link-type="idl-name" href="#mediasettingsrange" id="ref-for-mediasettingsrange②">MediaSettingsRange</a>, readonly</span>
    <dd>This reflects the <a data-link-type="dfn" href="#image-height" id="ref-for-image-height">image height</a> range supported by the UA.
    <dt><dfn class="dfn-paneled idl-code" data-dfn-for="PhotoCapabilities" data-dfn-type="attribute" data-export id="dom-photocapabilities-imagewidth"><code>imageWidth</code></dfn>, <span> of type <a data-link-type="idl-name" href="#mediasettingsrange" id="ref-for-mediasettingsrange③">MediaSettingsRange</a>, readonly</span>
    <dd>This reflects the <a data-link-type="dfn" href="#image-width" id="ref-for-image-width">image width</a> range supported by the UA.
    <dt><dfn class="dfn-paneled idl-code" data-dfn-for="PhotoCapabilities" data-dfn-type="attribute" data-export id="dom-photocapabilities-filllightmode"><code>fillLightMode</code></dfn>, <span> of type FrozenArray&lt;<a data-link-type="idl-name" href="#enumdef-filllightmode" id="ref-for-enumdef-filllightmode①">FillLightMode</a>>, readonly</span>
    <dd>This reflects the supported <a data-link-type="dfn" href="#fill-light-mode" id="ref-for-fill-light-mode">fill light mode</a> (flash) settings, if any.
   </dl>
   <div class="note" role="note"> The supported resolutions are presented as segregated <code class="idl"><a data-link-type="idl" href="#dom-photocapabilities-imagewidth" id="ref-for-dom-photocapabilities-imagewidth①">imageWidth</a></code> and <code class="idl"><a data-link-type="idl" href="#dom-photocapabilities-imageheight" id="ref-for-dom-photocapabilities-imageheight①">imageHeight</a></code> ranges to prevent increasing the fingerprinting surface and to allow the UA to make a best-effort decision with regards to actual hardware configuration. </div>
   <h2 class="heading settled" data-level="5" id="photosettings-section"><span class="secno">5. </span><span class="content">PhotoSettings</span><a class="self-link" href="#photosettings-section"></a></h2>
<pre class="idl highlight def"><c- b>dictionary</c-> <dfn class="dfn-paneled idl-code" data-dfn-type="dictionary" data-export id="dictdef-photosettings"><code><c- g>PhotoSettings</c-></code></dfn> {
  <a class="n" data-link-type="idl-name" href="#enumdef-filllightmode" id="ref-for-enumdef-filllightmode②"><c- n>FillLightMode</c-></a>   <a class="idl-code" data-link-type="dict-member" data-type="FillLightMode   " href="#dom-photosettings-filllightmode" id="ref-for-dom-photosettings-filllightmode"><c- g>fillLightMode</c-></a>;
  <a class="idl-code" data-link-type="interface" href="https://heycam.github.io/webidl/#idl-double" id="ref-for-idl-double"><c- b>double</c-></a>          <a class="idl-code" data-link-type="dict-member" data-type="double          " href="#dom-photosettings-imageheight" id="ref-for-dom-photosettings-imageheight"><c- g>imageHeight</c-></a>;
  <a class="idl-code" data-link-type="interface" href="https://heycam.github.io/webidl/#idl-double" id="ref-for-idl-double①"><c- b>double</c-></a>          <a class="idl-code" data-link-type="dict-member" data-type="double          " href="#dom-photosettings-imagewidth" id="ref-for-dom-photosettings-imagewidth"><c- g>imageWidth</c-></a>;
  <a class="idl-code" data-link-type="interface" href="https://heycam.github.io/webidl/#idl-boolean" id="ref-for-idl-boolean"><c- b>boolean</c-></a>         <a class="idl-code" data-link-type="dict-member" data-type="boolean         " href="#dom-photosettings-redeyereduction" id="ref-for-dom-photosettings-redeyereduction"><c- g>redEyeReduction</c-></a>;
};
</pre>
   <h3 class="heading settled" data-level="5.1" id="photosettings-members"><span class="secno">5.1. </span><span class="content">Members</span><a class="self-link" href="#photosettings-members"></a></h3>
   <dl class="domintro">
    <dt><dfn class="dfn-paneled idl-code" data-dfn-for="PhotoSettings" data-dfn-type="dict-member" data-export id="dom-photosettings-redeyereduction"><code>redEyeReduction</code></dfn>, <span> of type <a data-link-type="idl-name" href="https://heycam.github.io/webidl/#idl-boolean" id="ref-for-idl-boolean①">boolean</a></span>
    <dd>This reflects whether camera <a data-link-type="dfn" href="#red-eye-reduction" id="ref-for-red-eye-reduction①">red eye reduction</a> is desired
    <dt><dfn class="dfn-paneled idl-code" data-dfn-for="PhotoSettings" data-dfn-type="dict-member" data-export id="dom-photosettings-imagewidth"><code>imageWidth</code></dfn>, <span> of type <a data-link-type="idl-name" href="https://heycam.github.io/webidl/#idl-double" id="ref-for-idl-double②">double</a></span>
    <dd>This reflects the desired <a data-link-type="dfn" href="#image-height" id="ref-for-image-height①">image height</a>.  The UA MUST select the closest height value this setting if it supports a discrete set of height options.
    <dt><dfn class="dfn-paneled idl-code" data-dfn-for="PhotoSettings" data-dfn-type="dict-member" data-export id="dom-photosettings-imageheight"><code>imageHeight</code></dfn>, <span> of type <a data-link-type="idl-name" href="https://heycam.github.io/webidl/#idl-double" id="ref-for-idl-double③">double</a></span>
    <dd>This reflects the desired <a data-link-type="dfn" href="#image-width" id="ref-for-image-width①">image width</a>. The UA MUST select the closest width value this setting if it supports a discrete set of width options.
    <dt><dfn class="dfn-paneled idl-code" data-dfn-for="PhotoSettings" data-dfn-type="dict-member" data-export id="dom-photosettings-filllightmode"><code>fillLightMode</code></dfn>, <span> of type <a data-link-type="idl-name" href="#enumdef-filllightmode" id="ref-for-enumdef-filllightmode③">FillLightMode</a></span>
    <dd>This reflects the desired <a data-link-type="dfn" href="#fill-light-mode" id="ref-for-fill-light-mode①">fill light mode</a> (flash) setting.
   </dl>
   <h2 class="heading settled" data-level="6" id="mediasettingsrange-section"><span class="secno">6. </span><span class="content"><code class="idl"><a data-link-type="idl" href="#mediasettingsrange" id="ref-for-mediasettingsrange④">MediaSettingsRange</a></code></span><a class="self-link" href="#mediasettingsrange-section"></a></h2>
<pre class="idl highlight def">[<a class="idl-code" data-link-type="extended-attribute" href="https://heycam.github.io/webidl/#Exposed" id="ref-for-Exposed②"><c- g>Exposed</c-></a>=<c- n>Window</c->] <c- b>interface</c-> <dfn class="dfn-paneled idl-code" data-dfn-type="interface" data-export id="mediasettingsrange"><code><c- g>MediaSettingsRange</c-></code></dfn> {
    <c- b>readonly</c-> <c- b>attribute</c-> <a class="idl-code" data-link-type="interface" href="https://heycam.github.io/webidl/#idl-double" id="ref-for-idl-double④"><c- b>double</c-></a> <a class="idl-code" data-link-type="attribute" data-readonly data-type="double" href="#dom-mediasettingsrange-max" id="ref-for-dom-mediasettingsrange-max"><c- g>max</c-></a>;
    <c- b>readonly</c-> <c- b>attribute</c-> <a class="idl-code" data-link-type="interface" href="https://heycam.github.io/webidl/#idl-double" id="ref-for-idl-double⑤"><c- b>double</c-></a> <a class="idl-code" data-link-type="attribute" data-readonly data-type="double" href="#dom-mediasettingsrange-min" id="ref-for-dom-mediasettingsrange-min"><c- g>min</c-></a>;
    <c- b>readonly</c-> <c- b>attribute</c-> <a class="idl-code" data-link-type="interface" href="https://heycam.github.io/webidl/#idl-double" id="ref-for-idl-double⑥"><c- b>double</c-></a> <a class="idl-code" data-link-type="attribute" data-readonly data-type="double" href="#dom-mediasettingsrange-step" id="ref-for-dom-mediasettingsrange-step"><c- g>step</c-></a>;
};
</pre>
   <h3 class="heading settled" data-level="6.1" id="mediasettingsrange-attributes"><span class="secno">6.1. </span><span class="content">Attributes</span><a class="self-link" href="#mediasettingsrange-attributes"></a></h3>
   <dl class="domintro">
    <dt><dfn class="dfn-paneled idl-code" data-dfn-for="MediaSettingsRange" data-dfn-type="attribute" data-export id="dom-mediasettingsrange-max"><code>max</code></dfn>, <span> of type <a data-link-type="idl-name" href="https://heycam.github.io/webidl/#idl-double" id="ref-for-idl-double⑦">double</a>, readonly</span>
    <dd>The maximum value of this setting
    <dt><dfn class="dfn-paneled idl-code" data-dfn-for="MediaSettingsRange" data-dfn-type="attribute" data-export id="dom-mediasettingsrange-min"><code>min</code></dfn>, <span> of type <a data-link-type="idl-name" href="https://heycam.github.io/webidl/#idl-double" id="ref-for-idl-double⑧">double</a>, readonly</span>
    <dd>The minimum value of this setting
    <dt><dfn class="dfn-paneled idl-code" data-dfn-for="MediaSettingsRange" data-dfn-type="attribute" data-export id="dom-mediasettingsrange-step"><code>step</code></dfn>, <span> of type <a data-link-type="idl-name" href="https://heycam.github.io/webidl/#idl-double" id="ref-for-idl-double⑨">double</a>, readonly</span>
    <dd>The minimum difference between consecutive values of this setting.
   </dl>
   <h2 class="heading settled" data-level="7" id="redeyereduction-section"><span class="secno">7. </span><span class="content"><code class="idl"><a data-link-type="idl" href="#enumdef-redeyereduction" id="ref-for-enumdef-redeyereduction②">RedEyeReduction</a></code></span><a class="self-link" href="#redeyereduction-section"></a></h2>
<pre class="idl highlight def"><c- b>enum</c-> <dfn class="dfn-paneled idl-code" data-dfn-type="enum" data-export id="enumdef-redeyereduction"><code><c- g>RedEyeReduction</c-></code></dfn> {
  <a class="idl-code" data-link-type="enum-value" href="#dom-redeyereduction-never" id="ref-for-dom-redeyereduction-never"><c- s>"never"</c-></a>,
  <a class="idl-code" data-link-type="enum-value" href="#dom-redeyereduction-always" id="ref-for-dom-redeyereduction-always"><c- s>"always"</c-></a>,
  <a class="idl-code" data-link-type="enum-value" href="#dom-redeyereduction-controllable" id="ref-for-dom-redeyereduction-controllable"><c- s>"controllable"</c-></a>
};
</pre>
   <h3 class="heading settled" data-level="7.1" id="redeyereduction-values"><span class="secno">7.1. </span><span class="content">Values</span><a class="self-link" href="#redeyereduction-values"></a></h3>
   <dl class="domintro">
    <dt><dfn class="dfn-paneled idl-code" data-dfn-for="RedEyeReduction" data-dfn-type="enum-value" data-export data-lt="&quot;never&quot;|never" id="dom-redeyereduction-never"><code>never</code></dfn>
    <dd><a data-link-type="dfn" href="#red-eye-reduction" id="ref-for-red-eye-reduction②">Red eye reduction</a> is not available in the device.
    <dt><dfn class="dfn-paneled idl-code" data-dfn-for="RedEyeReduction" data-dfn-type="enum-value" data-export data-lt="&quot;always&quot;|always" id="dom-redeyereduction-always"><code>always</code></dfn>
    <dd><a data-link-type="dfn" href="#red-eye-reduction" id="ref-for-red-eye-reduction③">Red eye reduction</a> is available in the device and it is always configured to true.
    <dt><dfn class="dfn-paneled idl-code" data-dfn-for="RedEyeReduction" data-dfn-type="enum-value" data-export data-lt="&quot;controllable&quot;|controllable" id="dom-redeyereduction-controllable"><code>controllable</code></dfn>
    <dd><a data-link-type="dfn" href="#red-eye-reduction" id="ref-for-red-eye-reduction④">Red eye reduction</a> is available in the device and it is controllable by the user via <code class="idl"><a data-link-type="idl" href="#dom-photosettings-redeyereduction" id="ref-for-dom-photosettings-redeyereduction①">redEyeReduction</a></code>.
   </dl>
   <h2 class="heading settled" data-level="8" id="filllightmode-section"><span class="secno">8. </span><span class="content"><code class="idl"><a data-link-type="idl" href="#enumdef-filllightmode" id="ref-for-enumdef-filllightmode④">FillLightMode</a></code></span><a class="self-link" href="#filllightmode-section"></a></h2>
<pre class="idl highlight def"><c- b>enum</c-> <dfn class="dfn-paneled idl-code" data-dfn-type="enum" data-export id="enumdef-filllightmode"><code><c- g>FillLightMode</c-></code></dfn> {
  <a class="idl-code" data-link-type="enum-value" href="#dom-filllightmode-auto" id="ref-for-dom-filllightmode-auto"><c- s>"auto"</c-></a>,
  <a class="idl-code" data-link-type="enum-value" href="#dom-filllightmode-off" id="ref-for-dom-filllightmode-off"><c- s>"off"</c-></a>,
  <a class="idl-code" data-link-type="enum-value" href="#dom-filllightmode-flash" id="ref-for-dom-filllightmode-flash"><c- s>"flash"</c-></a>
};
</pre>
   <h3 class="heading settled" data-level="8.1" id="filllightmode-values"><span class="secno">8.1. </span><span class="content">Values</span><a class="self-link" href="#filllightmode-values"></a></h3>
   <dl class="domintro">
    <dt><dfn class="dfn-paneled idl-code" data-dfn-for="FillLightMode" data-dfn-type="enum-value" data-export data-lt="&quot;auto&quot;|auto" id="dom-filllightmode-auto"><code>auto</code></dfn>
    <dd>The video device’s fill light will be enabled when required (typically low light conditions). Otherwise it will be off. Note that auto does not guarantee that a flash will fire when <code class="idl"><a data-link-type="idl" href="#dom-imagecapture-takephoto" id="ref-for-dom-imagecapture-takephoto⑦">takePhoto()</a></code> is called. Use <code class="idl"><a data-link-type="idl" href="#dom-filllightmode-flash" id="ref-for-dom-filllightmode-flash①">flash</a></code> to guarantee firing of the flash for <code class="idl"><a data-link-type="idl" href="#dom-imagecapture-takephoto" id="ref-for-dom-imagecapture-takephoto⑧">takePhoto()</a></code> method.
    <dt><dfn class="dfn-paneled idl-code" data-dfn-for="FillLightMode" data-dfn-type="enum-value" data-export data-lt="&quot;off&quot;|off" id="dom-filllightmode-off"><code>off</code></dfn>
    <dd>The source’s fill light and/or flash will not be used.
    <dt><dfn class="dfn-paneled idl-code" data-dfn-for="FillLightMode" data-dfn-type="enum-value" data-export data-lt="&quot;flash&quot;|flash" id="dom-filllightmode-flash"><code>flash</code></dfn>
    <dd>This value will always cause the flash to fire for <code class="idl"><a data-link-type="idl" href="#dom-imagecapture-takephoto" id="ref-for-dom-imagecapture-takephoto⑨">takePhoto()</a></code> method.
   </dl>
   <h2 class="heading settled" data-level="9" id="extensions"><span class="secno">9. </span><span class="content">Extensions</span><a class="self-link" href="#extensions"></a></h2>
   <p>This Section defines a number of new set of <a data-link-type="dfn" href="https://www.w3.org/TR/mediacapture-streams/#defining-a-new-constrainable-property" id="ref-for-defining-a-new-constrainable-property">Constrainable Properties</a> for <code class="idl"><a data-link-type="idl" href="https://www.w3.org/TR/mediacapture-streams/#mediastreamtrack" id="ref-for-mediastreamtrack①②">MediaStreamTrack</a></code> that can be applied in order to make its behavior more suitable for taking pictures.  Use of these constraints via <code class="idl"><a data-link-type="idl" href="https://www.w3.org/TR/mediacapture-streams/#mediastreamtrack" id="ref-for-mediastreamtrack①③">MediaStreamTrack</a></code>'s methods <code class="idl"><a data-link-type="idl" href="https://www.w3.org/TR/mediacapture-streams/#widl-MediaStreamTrack-getCapabilities-MediaTrackCapabilities" id="ref-for-widl-MediaStreamTrack-getCapabilities-MediaTrackCapabilities">getCapabilities()</a></code>, <code class="idl"><a data-link-type="idl" href="https://www.w3.org/TR/mediacapture-streams/#widl-ConstrainablePattern-getSettings-Settings" id="ref-for-widl-ConstrainablePattern-getSettings-Settings">getSettings()</a></code>, <code class="idl"><a data-link-type="idl" href="https://www.w3.org/TR/mediacapture-streams/#widl-MediaStreamTrack-getConstraints-MediaTrackConstraints" id="ref-for-widl-MediaStreamTrack-getConstraints-MediaTrackConstraints">getConstraints()</a></code> and <code class="idl"><a data-link-type="idl" href="https://www.w3.org/TR/mediacapture-streams/#widl-MediaStreamTrack-applyConstraints-Promise-void--MediaTrackConstraints-constraints" id="ref-for-widl-MediaStreamTrack-applyConstraints-Promise-void--MediaTrackConstraints-constraints">applyConstraints()</a></code> will modify the behavior of  the <code class="idl"><a data-link-type="idl" href="#imagecapture" id="ref-for-imagecapture">ImageCapture</a></code> object’s <code class="idl"><a data-link-type="idl" href="#dom-imagecapture-track" id="ref-for-dom-imagecapture-track①④">track</a></code>.</p>
   <h3 class="heading settled" data-level="9.1" id="mediatracksupportedconstraints-section"><span class="secno">9.1. </span><span class="content"><code class="idl"><a data-link-type="idl" href="https://www.w3.org/TR/mediacapture-streams/#idl-def-MediaTrackSupportedConstraints" id="ref-for-idl-def-MediaTrackSupportedConstraints">MediaTrackSupportedConstraints</a></code> dictionary</span><a class="self-link" href="#mediatracksupportedconstraints-section"></a></h3>
   <p><code class="idl"><a data-link-type="idl" href="https://www.w3.org/TR/mediacapture-streams/#idl-def-MediaTrackSupportedConstraints" id="ref-for-idl-def-MediaTrackSupportedConstraints①">MediaTrackSupportedConstraints</a></code> is extended here with the list of constraints that a User Agent recognizes for controlling the photo capabilities.  This dictionary can be retrieved using <code class="idl"><a data-link-type="idl" href="https://www.w3.org/TR/mediacapture-streams/#mediadevices-interface-extensions" id="ref-for-mediadevices-interface-extensions">MediaDevices</a></code> <code class="idl"><a data-link-type="idl" href="https://www.w3.org/TR/mediacapture-streams/#widl-MediaDevices-getSupportedConstraints-MediaTrackSupportedConstraints" id="ref-for-widl-MediaDevices-getSupportedConstraints-MediaTrackSupportedConstraints">getSupportedConstraints()</a></code> method.</p>
<pre class="idl highlight def"><c- b>partial</c-> <c- b>dictionary</c-> <a class="idl-code" data-link-type="dictionary" href="https://www.w3.org/TR/mediacapture-streams/#idl-def-MediaTrackSupportedConstraints" id="ref-for-idl-def-MediaTrackSupportedConstraints②"><c- g>MediaTrackSupportedConstraints</c-></a> {
  <a class="idl-code" data-link-type="interface" href="https://heycam.github.io/webidl/#idl-boolean" id="ref-for-idl-boolean②"><c- b>boolean</c-></a> <a class="idl-code" data-default="true" data-link-type="dict-member" data-type="boolean " href="#dom-mediatracksupportedconstraints-whitebalancemode" id="ref-for-dom-mediatracksupportedconstraints-whitebalancemode"><c- g>whiteBalanceMode</c-></a> = <c- b>true</c->;
  <a class="idl-code" data-link-type="interface" href="https://heycam.github.io/webidl/#idl-boolean" id="ref-for-idl-boolean③"><c- b>boolean</c-></a> <a class="idl-code" data-default="true" data-link-type="dict-member" data-type="boolean " href="#dom-mediatracksupportedconstraints-exposuremode" id="ref-for-dom-mediatracksupportedconstraints-exposuremode"><c- g>exposureMode</c-></a> = <c- b>true</c->;
  <a class="idl-code" data-link-type="interface" href="https://heycam.github.io/webidl/#idl-boolean" id="ref-for-idl-boolean④"><c- b>boolean</c-></a> <a class="idl-code" data-default="true" data-link-type="dict-member" data-type="boolean " href="#dom-mediatracksupportedconstraints-focusmode" id="ref-for-dom-mediatracksupportedconstraints-focusmode"><c- g>focusMode</c-></a> = <c- b>true</c->;
  <a class="idl-code" data-link-type="interface" href="https://heycam.github.io/webidl/#idl-boolean" id="ref-for-idl-boolean⑤"><c- b>boolean</c-></a> <a class="idl-code" data-default="true" data-link-type="dict-member" data-type="boolean " href="#dom-mediatracksupportedconstraints-pointsofinterest" id="ref-for-dom-mediatracksupportedconstraints-pointsofinterest"><c- g>pointsOfInterest</c-></a> = <c- b>true</c->;

  <a class="idl-code" data-link-type="interface" href="https://heycam.github.io/webidl/#idl-boolean" id="ref-for-idl-boolean⑥"><c- b>boolean</c-></a> <a class="idl-code" data-default="true" data-link-type="dict-member" data-type="boolean " href="#dom-mediatracksupportedconstraints-exposurecompensation" id="ref-for-dom-mediatracksupportedconstraints-exposurecompensation"><c- g>exposureCompensation</c-></a> = <c- b>true</c->;
  <a class="idl-code" data-link-type="interface" href="https://heycam.github.io/webidl/#idl-boolean" id="ref-for-idl-boolean⑦"><c- b>boolean</c-></a> <a class="idl-code" data-default="true" data-link-type="dict-member" data-type="boolean " href="#dom-mediatracksupportedconstraints-exposuretime" id="ref-for-dom-mediatracksupportedconstraints-exposuretime"><c- g>exposureTime</c-></a> = <c- b>true</c->;
  <a class="idl-code" data-link-type="interface" href="https://heycam.github.io/webidl/#idl-boolean" id="ref-for-idl-boolean⑧"><c- b>boolean</c-></a> <a class="idl-code" data-default="true" data-link-type="dict-member" data-type="boolean " href="#dom-mediatracksupportedconstraints-colortemperature" id="ref-for-dom-mediatracksupportedconstraints-colortemperature"><c- g>colorTemperature</c-></a> = <c- b>true</c->;
  <a class="idl-code" data-link-type="interface" href="https://heycam.github.io/webidl/#idl-boolean" id="ref-for-idl-boolean⑨"><c- b>boolean</c-></a> <a class="idl-code" data-default="true" data-link-type="dict-member" data-type="boolean " href="#dom-mediatracksupportedconstraints-iso" id="ref-for-dom-mediatracksupportedconstraints-iso"><c- g>iso</c-></a> = <c- b>true</c->;

  <a class="idl-code" data-link-type="interface" href="https://heycam.github.io/webidl/#idl-boolean" id="ref-for-idl-boolean①⓪"><c- b>boolean</c-></a> <a class="idl-code" data-default="true" data-link-type="dict-member" data-type="boolean " href="#dom-mediatracksupportedconstraints-brightness" id="ref-for-dom-mediatracksupportedconstraints-brightness"><c- g>brightness</c-></a> = <c- b>true</c->;
  <a class="idl-code" data-link-type="interface" href="https://heycam.github.io/webidl/#idl-boolean" id="ref-for-idl-boolean①①"><c- b>boolean</c-></a> <a class="idl-code" data-default="true" data-link-type="dict-member" data-type="boolean " href="#dom-mediatracksupportedconstraints-contrast" id="ref-for-dom-mediatracksupportedconstraints-contrast"><c- g>contrast</c-></a> = <c- b>true</c->;
  <a class="idl-code" data-link-type="interface" href="https://heycam.github.io/webidl/#idl-boolean" id="ref-for-idl-boolean①②"><c- b>boolean</c-></a> <a class="idl-code" data-default="true" data-link-type="dict-member" data-type="boolean " href="#dom-mediatracksupportedconstraints-pan" id="ref-for-dom-mediatracksupportedconstraints-pan"><c- g>pan</c-></a> = <c- b>true</c->;
  <a class="idl-code" data-link-type="interface" href="https://heycam.github.io/webidl/#idl-boolean" id="ref-for-idl-boolean①③"><c- b>boolean</c-></a> <a class="idl-code" data-default="true" data-link-type="dict-member" data-type="boolean " href="#dom-mediatracksupportedconstraints-saturation" id="ref-for-dom-mediatracksupportedconstraints-saturation"><c- g>saturation</c-></a> = <c- b>true</c->;
  <a class="idl-code" data-link-type="interface" href="https://heycam.github.io/webidl/#idl-boolean" id="ref-for-idl-boolean①④"><c- b>boolean</c-></a> <a class="idl-code" data-default="true" data-link-type="dict-member" data-type="boolean " href="#dom-mediatracksupportedconstraints-sharpness" id="ref-for-dom-mediatracksupportedconstraints-sharpness"><c- g>sharpness</c-></a> = <c- b>true</c->;
  <a class="idl-code" data-link-type="interface" href="https://heycam.github.io/webidl/#idl-boolean" id="ref-for-idl-boolean①⑤"><c- b>boolean</c-></a> <a class="idl-code" data-default="true" data-link-type="dict-member" data-type="boolean " href="#dom-mediatracksupportedconstraints-focusdistance" id="ref-for-dom-mediatracksupportedconstraints-focusdistance"><c- g>focusDistance</c-></a> = <c- b>true</c->;
  <a class="idl-code" data-link-type="interface" href="https://heycam.github.io/webidl/#idl-boolean" id="ref-for-idl-boolean①⑥"><c- b>boolean</c-></a> <a class="idl-code" data-default="true" data-link-type="dict-member" data-type="boolean " href="#dom-mediatracksupportedconstraints-tilt" id="ref-for-dom-mediatracksupportedconstraints-tilt"><c- g>tilt</c-></a> = <c- b>true</c->;
  <a class="idl-code" data-link-type="interface" href="https://heycam.github.io/webidl/#idl-boolean" id="ref-for-idl-boolean①⑦"><c- b>boolean</c-></a> <a class="idl-code" data-default="true" data-link-type="dict-member" data-type="boolean " href="#dom-mediatracksupportedconstraints-zoom" id="ref-for-dom-mediatracksupportedconstraints-zoom"><c- g>zoom</c-></a> = <c- b>true</c->;
  <a class="idl-code" data-link-type="interface" href="https://heycam.github.io/webidl/#idl-boolean" id="ref-for-idl-boolean①⑧"><c- b>boolean</c-></a> <a class="idl-code" data-default="true" data-link-type="dict-member" data-type="boolean " href="#dom-mediatracksupportedconstraints-torch" id="ref-for-dom-mediatracksupportedconstraints-torch"><c- g>torch</c-></a> = <c- b>true</c->;
};
</pre>
   <h4 class="heading settled" data-level="9.1.1" id="mediatracksupportedconstraints-members"><span class="secno">9.1.1. </span><span class="content">Members</span><a class="self-link" href="#mediatracksupportedconstraints-members"></a></h4>
   <dl class="domintro">
    <dt><dfn class="dfn-paneled idl-code" data-dfn-for="MediaTrackSupportedConstraints" data-dfn-type="dict-member" data-export id="dom-mediatracksupportedconstraints-whitebalancemode"><code>whiteBalanceMode</code></dfn>, <span> of type <a data-link-type="idl-name" href="https://heycam.github.io/webidl/#idl-boolean" id="ref-for-idl-boolean①⑨">boolean</a>, defaulting to <code>true</code></span>
    <dd>Whether <a data-link-type="dfn" href="#white-balance-mode" id="ref-for-white-balance-mode">white balance mode</a> constraining is recognized.
    <dt><dfn class="dfn-paneled idl-code" data-dfn-for="MediaTrackSupportedConstraints" data-dfn-type="dict-member" data-export id="dom-mediatracksupportedconstraints-colortemperature"><code>colorTemperature</code></dfn>, <span> of type <a data-link-type="idl-name" href="https://heycam.github.io/webidl/#idl-boolean" id="ref-for-idl-boolean②⓪">boolean</a>, defaulting to <code>true</code></span>
    <dd>Whether <a data-link-type="dfn" href="#color-temperature" id="ref-for-color-temperature">color temperature</a> constraining is recognized.
    <dt><dfn class="dfn-paneled idl-code" data-dfn-for="MediaTrackSupportedConstraints" data-dfn-type="dict-member" data-export id="dom-mediatracksupportedconstraints-exposuremode"><code>exposureMode</code></dfn>, <span> of type <a data-link-type="idl-name" href="https://heycam.github.io/webidl/#idl-boolean" id="ref-for-idl-boolean②①">boolean</a>, defaulting to <code>true</code></span>
    <dd>Whether <a data-link-type="dfn" href="#exposure" id="ref-for-exposure">exposure</a> constraining is recognized.
    <dt><dfn class="dfn-paneled idl-code" data-dfn-for="MediaTrackSupportedConstraints" data-dfn-type="dict-member" data-export id="dom-mediatracksupportedconstraints-exposurecompensation"><code>exposureCompensation</code></dfn>, <span> of type <a data-link-type="idl-name" href="https://heycam.github.io/webidl/#idl-boolean" id="ref-for-idl-boolean②②">boolean</a>, defaulting to <code>true</code></span>
    <dd>Whether <a data-link-type="dfn" href="#exposure-compensation" id="ref-for-exposure-compensation">exposure compensation</a> constraining is recognized.
    <dt><dfn class="dfn-paneled idl-code" data-dfn-for="MediaTrackSupportedConstraints" data-dfn-type="dict-member" data-export id="dom-mediatracksupportedconstraints-exposuretime"><code>exposureTime</code></dfn>, <span> of type <a data-link-type="idl-name" href="https://heycam.github.io/webidl/#idl-boolean" id="ref-for-idl-boolean②③">boolean</a>, defaulting to <code>true</code></span>
    <dd>Whether <a data-link-type="dfn" href="#exposure-time" id="ref-for-exposure-time">exposure time</a> constraining is recognized.
    <dt><dfn class="dfn-paneled idl-code" data-dfn-for="MediaTrackSupportedConstraints" data-dfn-type="dict-member" data-export id="dom-mediatracksupportedconstraints-iso"><code>iso</code></dfn>, <span> of type <a data-link-type="idl-name" href="https://heycam.github.io/webidl/#idl-boolean" id="ref-for-idl-boolean②④">boolean</a>, defaulting to <code>true</code></span>
    <dd>Whether <a data-link-type="dfn" href="#iso" id="ref-for-iso">ISO</a> constraining is recognized.
    <dt><dfn class="dfn-paneled idl-code" data-dfn-for="MediaTrackSupportedConstraints" data-dfn-type="dict-member" data-export id="dom-mediatracksupportedconstraints-focusmode"><code>focusMode</code></dfn>, <span> of type <a data-link-type="idl-name" href="https://heycam.github.io/webidl/#idl-boolean" id="ref-for-idl-boolean②⑤">boolean</a>, defaulting to <code>true</code></span>
    <dd>Whether <a data-link-type="dfn" href="#focus-mode" id="ref-for-focus-mode">focus mode</a> constraining is recognized.
    <dt><dfn class="dfn-paneled idl-code" data-dfn-for="MediaTrackSupportedConstraints" data-dfn-type="dict-member" data-export id="dom-mediatracksupportedconstraints-pointsofinterest"><code>pointsOfInterest</code></dfn>, <span> of type <a data-link-type="idl-name" href="https://heycam.github.io/webidl/#idl-boolean" id="ref-for-idl-boolean②⑥">boolean</a>, defaulting to <code>true</code></span>
    <dd>Whether <a data-link-type="dfn" href="#points-of-interest" id="ref-for-points-of-interest">points of interest</a> are supported.
    <dt><dfn class="dfn-paneled idl-code" data-dfn-for="MediaTrackSupportedConstraints" data-dfn-type="dict-member" data-export id="dom-mediatracksupportedconstraints-brightness"><code>brightness</code></dfn>, <span> of type <a data-link-type="idl-name" href="https://heycam.github.io/webidl/#idl-boolean" id="ref-for-idl-boolean②⑦">boolean</a>, defaulting to <code>true</code></span>
    <dd>Whether <a data-link-type="dfn" href="#brightness" id="ref-for-brightness">brightness</a> constraining is recognized.
    <dt><dfn class="dfn-paneled idl-code" data-dfn-for="MediaTrackSupportedConstraints" data-dfn-type="dict-member" data-export id="dom-mediatracksupportedconstraints-contrast"><code>contrast</code></dfn>, <span> of type <a data-link-type="idl-name" href="https://heycam.github.io/webidl/#idl-boolean" id="ref-for-idl-boolean②⑧">boolean</a>, defaulting to <code>true</code></span>
    <dd>Whether <a data-link-type="dfn" href="#contrast" id="ref-for-contrast">contrast</a> constraining is recognized.
    <dt><dfn class="dfn-paneled idl-code" data-dfn-for="MediaTrackSupportedConstraints" data-dfn-type="dict-member" data-export id="dom-mediatracksupportedconstraints-pan"><code>pan</code></dfn>, <span> of type <a data-link-type="idl-name" href="https://heycam.github.io/webidl/#idl-boolean" id="ref-for-idl-boolean②⑨">boolean</a>, defaulting to <code>true</code></span>
    <dd>Whether <a data-link-type="dfn" href="#pan" id="ref-for-pan">pan</a> constraining is recognized.
    <dt><dfn class="dfn-paneled idl-code" data-dfn-for="MediaTrackSupportedConstraints" data-dfn-type="dict-member" data-export id="dom-mediatracksupportedconstraints-saturation"><code>saturation</code></dfn>, <span> of type <a data-link-type="idl-name" href="https://heycam.github.io/webidl/#idl-boolean" id="ref-for-idl-boolean③⓪">boolean</a>, defaulting to <code>true</code></span>
    <dd>Whether <a data-link-type="dfn" href="#saturation" id="ref-for-saturation">saturation</a> constraining is recognized.
    <dt><dfn class="dfn-paneled idl-code" data-dfn-for="MediaTrackSupportedConstraints" data-dfn-type="dict-member" data-export id="dom-mediatracksupportedconstraints-sharpness"><code>sharpness</code></dfn>, <span> of type <a data-link-type="idl-name" href="https://heycam.github.io/webidl/#idl-boolean" id="ref-for-idl-boolean③①">boolean</a>, defaulting to <code>true</code></span>
    <dd>Whether <a data-link-type="dfn" href="#sharpness" id="ref-for-sharpness">sharpness</a> constraining is recognized.
    <dt><dfn class="dfn-paneled idl-code" data-dfn-for="MediaTrackSupportedConstraints" data-dfn-type="dict-member" data-export id="dom-mediatracksupportedconstraints-focusdistance"><code>focusDistance</code></dfn>, <span> of type <a data-link-type="idl-name" href="https://heycam.github.io/webidl/#idl-boolean" id="ref-for-idl-boolean③②">boolean</a>, defaulting to <code>true</code></span>
    <dd>Whether <a data-link-type="dfn" href="#focus-distance" id="ref-for-focus-distance">focus distance</a> constraining is recognized.
    <dt><dfn class="dfn-paneled idl-code" data-dfn-for="MediaTrackSupportedConstraints" data-dfn-type="dict-member" data-export id="dom-mediatracksupportedconstraints-tilt"><code>tilt</code></dfn>, <span> of type <a data-link-type="idl-name" href="https://heycam.github.io/webidl/#idl-boolean" id="ref-for-idl-boolean③③">boolean</a>, defaulting to <code>true</code></span>
    <dd>Whether <a data-link-type="dfn" href="#tilt" id="ref-for-tilt">tilt</a> constraining is recognized.
    <dt><dfn class="dfn-paneled idl-code" data-dfn-for="MediaTrackSupportedConstraints" data-dfn-type="dict-member" data-export id="dom-mediatracksupportedconstraints-zoom"><code>zoom</code></dfn>, <span> of type <a data-link-type="idl-name" href="https://heycam.github.io/webidl/#idl-boolean" id="ref-for-idl-boolean③④">boolean</a>, defaulting to <code>true</code></span>
    <dd>Whether configuration of the <a data-link-type="dfn" href="#zoom" id="ref-for-zoom">zoom</a> level is recognized.
    <dt><dfn class="dfn-paneled idl-code" data-dfn-for="MediaTrackSupportedConstraints" data-dfn-type="dict-member" data-export id="dom-mediatracksupportedconstraints-torch"><code>torch</code></dfn>, <span> of type <a data-link-type="idl-name" href="https://heycam.github.io/webidl/#idl-boolean" id="ref-for-idl-boolean③⑤">boolean</a>, defaulting to <code>true</code></span>
    <dd>Whether configuration of <a data-link-type="dfn" href="#torch" id="ref-for-torch">torch</a> is recognized.
   </dl>
   <h3 class="heading settled" data-level="9.2" id="mediatrackcapabilities-section"><span class="secno">9.2. </span><span class="content"><code class="idl"><a data-link-type="idl" href="https://www.w3.org/TR/mediacapture-streams/#idl-def-MediaTrackCapabilities" id="ref-for-idl-def-MediaTrackCapabilities">MediaTrackCapabilities</a></code> dictionary</span><a class="self-link" href="#mediatrackcapabilities-section"></a></h3>
   <p><code class="idl"><a data-link-type="idl" href="https://www.w3.org/TR/mediacapture-streams/#idl-def-MediaTrackCapabilities" id="ref-for-idl-def-MediaTrackCapabilities①">MediaTrackCapabilities</a></code> is extended here with the capabilities specific to image capture. This dictionary is produced by the UA via <code class="idl"><a data-link-type="idl" href="https://www.w3.org/TR/mediacapture-streams/#widl-MediaStreamTrack-getCapabilities-MediaTrackCapabilities" id="ref-for-widl-MediaStreamTrack-getCapabilities-MediaTrackCapabilities①">getCapabilities()</a></code> and represents the supported ranges and enumerations of the supported constraints.</p>
<pre class="idl highlight def"><c- b>partial</c-> <c- b>dictionary</c-> <a class="idl-code" data-link-type="dictionary" href="https://www.w3.org/TR/mediacapture-streams/#idl-def-MediaTrackCapabilities" id="ref-for-idl-def-MediaTrackCapabilities②"><c- g>MediaTrackCapabilities</c-></a> {
  <c- b>sequence</c->&lt;<a class="idl-code" data-link-type="interface" href="https://heycam.github.io/webidl/#idl-DOMString" id="ref-for-idl-DOMString"><c- b>DOMString</c-></a>>  <a class="idl-code" data-link-type="dict-member" data-type="sequence<DOMString>  " href="#dom-mediatrackcapabilities-whitebalancemode" id="ref-for-dom-mediatrackcapabilities-whitebalancemode"><c- g>whiteBalanceMode</c-></a>;
  <c- b>sequence</c->&lt;<a class="idl-code" data-link-type="interface" href="https://heycam.github.io/webidl/#idl-DOMString" id="ref-for-idl-DOMString①"><c- b>DOMString</c-></a>>  <a class="idl-code" data-link-type="dict-member" data-type="sequence<DOMString>  " href="#dom-mediatrackcapabilities-exposuremode" id="ref-for-dom-mediatrackcapabilities-exposuremode"><c- g>exposureMode</c-></a>;
  <c- b>sequence</c->&lt;<a class="idl-code" data-link-type="interface" href="https://heycam.github.io/webidl/#idl-DOMString" id="ref-for-idl-DOMString②"><c- b>DOMString</c-></a>>  <a class="idl-code" data-link-type="dict-member" data-type="sequence<DOMString>  " href="#dom-mediatrackcapabilities-focusmode" id="ref-for-dom-mediatrackcapabilities-focusmode"><c- g>focusMode</c-></a>;

  <a class="n" data-link-type="idl-name" href="#mediasettingsrange" id="ref-for-mediasettingsrange⑤"><c- n>MediaSettingsRange</c-></a>   <a class="idl-code" data-link-type="dict-member" data-type="MediaSettingsRange   " href="#dom-mediatrackcapabilities-exposurecompensation" id="ref-for-dom-mediatrackcapabilities-exposurecompensation"><c- g>exposureCompensation</c-></a>;
  <a class="n" data-link-type="idl-name" href="#mediasettingsrange" id="ref-for-mediasettingsrange⑥"><c- n>MediaSettingsRange</c-></a>   <a class="idl-code" data-link-type="dict-member" data-type="MediaSettingsRange   " href="#dom-mediatrackcapabilities-exposuretime" id="ref-for-dom-mediatrackcapabilities-exposuretime"><c- g>exposureTime</c-></a>;
  <a class="n" data-link-type="idl-name" href="#mediasettingsrange" id="ref-for-mediasettingsrange⑦"><c- n>MediaSettingsRange</c-></a>   <a class="idl-code" data-link-type="dict-member" data-type="MediaSettingsRange   " href="#dom-mediatrackcapabilities-colortemperature" id="ref-for-dom-mediatrackcapabilities-colortemperature"><c- g>colorTemperature</c-></a>;
  <a class="n" data-link-type="idl-name" href="#mediasettingsrange" id="ref-for-mediasettingsrange⑧"><c- n>MediaSettingsRange</c-></a>   <a class="idl-code" data-link-type="dict-member" data-type="MediaSettingsRange   " href="#dom-mediatrackcapabilities-iso" id="ref-for-dom-mediatrackcapabilities-iso"><c- g>iso</c-></a>;

  <a class="n" data-link-type="idl-name" href="#mediasettingsrange" id="ref-for-mediasettingsrange⑨"><c- n>MediaSettingsRange</c-></a>   <a class="idl-code" data-link-type="dict-member" data-type="MediaSettingsRange   " href="#dom-mediatrackcapabilities-brightness" id="ref-for-dom-mediatrackcapabilities-brightness"><c- g>brightness</c-></a>;
  <a class="n" data-link-type="idl-name" href="#mediasettingsrange" id="ref-for-mediasettingsrange①⓪"><c- n>MediaSettingsRange</c-></a>   <a class="idl-code" data-link-type="dict-member" data-type="MediaSettingsRange   " href="#dom-mediatrackcapabilities-contrast" id="ref-for-dom-mediatrackcapabilities-contrast"><c- g>contrast</c-></a>;
  <a class="n" data-link-type="idl-name" href="#mediasettingsrange" id="ref-for-mediasettingsrange①①"><c- n>MediaSettingsRange</c-></a>   <a class="idl-code" data-link-type="dict-member" data-type="MediaSettingsRange   " href="#dom-mediatrackcapabilities-saturation" id="ref-for-dom-mediatrackcapabilities-saturation"><c- g>saturation</c-></a>;
  <a class="n" data-link-type="idl-name" href="#mediasettingsrange" id="ref-for-mediasettingsrange①②"><c- n>MediaSettingsRange</c-></a>   <a class="idl-code" data-link-type="dict-member" data-type="MediaSettingsRange   " href="#dom-mediatrackcapabilities-sharpness" id="ref-for-dom-mediatrackcapabilities-sharpness"><c- g>sharpness</c-></a>;

  <a class="n" data-link-type="idl-name" href="#mediasettingsrange" id="ref-for-mediasettingsrange①③"><c- n>MediaSettingsRange</c-></a>   <a class="idl-code" data-link-type="dict-member" data-type="MediaSettingsRange   " href="#dom-mediatrackcapabilities-focusdistance" id="ref-for-dom-mediatrackcapabilities-focusdistance"><c- g>focusDistance</c-></a>;
  <a class="n" data-link-type="idl-name" href="#mediasettingsrange" id="ref-for-mediasettingsrange①④"><c- n>MediaSettingsRange</c-></a>   <a class="idl-code" data-link-type="dict-member" data-type="MediaSettingsRange   " href="#dom-mediatrackcapabilities-pan" id="ref-for-dom-mediatrackcapabilities-pan"><c- g>pan</c-></a>;
  <a class="n" data-link-type="idl-name" href="#mediasettingsrange" id="ref-for-mediasettingsrange①⑤"><c- n>MediaSettingsRange</c-></a>   <a class="idl-code" data-link-type="dict-member" data-type="MediaSettingsRange   " href="#dom-mediatrackcapabilities-tilt" id="ref-for-dom-mediatrackcapabilities-tilt"><c- g>tilt</c-></a>;
  <a class="n" data-link-type="idl-name" href="#mediasettingsrange" id="ref-for-mediasettingsrange①⑥"><c- n>MediaSettingsRange</c-></a>   <a class="idl-code" data-link-type="dict-member" data-type="MediaSettingsRange   " href="#dom-mediatrackcapabilities-zoom" id="ref-for-dom-mediatrackcapabilities-zoom"><c- g>zoom</c-></a>;

  <a class="idl-code" data-link-type="interface" href="https://heycam.github.io/webidl/#idl-boolean" id="ref-for-idl-boolean③⑥"><c- b>boolean</c-></a>              <a class="idl-code" data-link-type="dict-member" data-type="boolean              " href="#dom-mediatrackcapabilities-torch" id="ref-for-dom-mediatrackcapabilities-torch"><c- g>torch</c-></a>;
};
</pre>
   <h4 class="heading settled" data-level="9.2.1" id="mediatrackcapabilities-members"><span class="secno">9.2.1. </span><span class="content">Members</span><a class="self-link" href="#mediatrackcapabilities-members"></a></h4>
   <dl class="domintro">
    <dt><dfn class="dfn-paneled idl-code" data-dfn-for="MediaTrackCapabilities" data-dfn-type="dict-member" data-export id="dom-mediatrackcapabilities-whitebalancemode"><code>whiteBalanceMode</code></dfn>, <span> of type sequence&lt;<a data-link-type="idl-name" href="https://heycam.github.io/webidl/#idl-DOMString" id="ref-for-idl-DOMString③">DOMString</a>></span>
    <dd>A sequence of supported <a data-link-type="dfn" href="#white-balance-mode" id="ref-for-white-balance-mode①">white balance modes</a>. Each string MUST be one of the members of <code class="idl"><a data-link-type="idl" href="#enumdef-meteringmode" id="ref-for-enumdef-meteringmode">MeteringMode</a></code>.
    <dt><dfn class="dfn-paneled idl-code" data-dfn-for="MediaTrackCapabilities" data-dfn-type="dict-member" data-export id="dom-mediatrackcapabilities-colortemperature"><code>colorTemperature</code></dfn>, <span> of type <a data-link-type="idl-name" href="#mediasettingsrange" id="ref-for-mediasettingsrange①⑦">MediaSettingsRange</a></span>
    <dd>This range reflects the supported correlated <a data-link-type="dfn" href="#color-temperature" id="ref-for-color-temperature①">color temperatures</a> to be used for the scene white balance calculation.
    <dt><dfn class="dfn-paneled idl-code" data-dfn-for="MediaTrackCapabilities" data-dfn-type="dict-member" data-export id="dom-mediatrackcapabilities-exposuremode"><code>exposureMode</code></dfn>, <span> of type sequence&lt;<a data-link-type="idl-name" href="https://heycam.github.io/webidl/#idl-DOMString" id="ref-for-idl-DOMString④">DOMString</a>></span>
    <dd>A sequence of supported <a data-link-type="dfn" href="#exposure" id="ref-for-exposure①">exposure</a> modes. Each string MUST be the members of <code class="idl"><a data-link-type="idl" href="#enumdef-meteringmode" id="ref-for-enumdef-meteringmode①">MeteringMode</a></code>.
    <dt><dfn class="dfn-paneled idl-code" data-dfn-for="MediaTrackCapabilities" data-dfn-type="dict-member" data-export id="dom-mediatrackcapabilities-exposurecompensation"><code>exposureCompensation</code></dfn>, <span> of type <a data-link-type="idl-name" href="#mediasettingsrange" id="ref-for-mediasettingsrange①⑧">MediaSettingsRange</a></span>
    <dd>This reflects the supported range of <a data-link-type="dfn" href="#exposure-compensation" id="ref-for-exposure-compensation①">exposure compensation</a>. The supported range can be, and usually is, centered around 0 EV.
    <dt><dfn class="dfn-paneled idl-code" data-dfn-for="MediaTrackCapabilities" data-dfn-type="dict-member" data-export id="dom-mediatrackcapabilities-exposuretime"><code>exposureTime</code></dfn>, <span> of type <a data-link-type="idl-name" href="#mediasettingsrange" id="ref-for-mediasettingsrange①⑨">MediaSettingsRange</a></span>
    <dd>This reflects the supported range of <a data-link-type="dfn" href="#exposure-time" id="ref-for-exposure-time①">exposure time</a>. Values are numeric. Increasing values indicate increasing exposure time.
    <dt><dfn class="dfn-paneled idl-code" data-dfn-for="MediaTrackCapabilities" data-dfn-type="dict-member" data-export id="dom-mediatrackcapabilities-iso"><code>iso</code></dfn>, <span> of type <a data-link-type="idl-name" href="#mediasettingsrange" id="ref-for-mediasettingsrange②⓪">MediaSettingsRange</a></span>
    <dd>This reflects the permitted range of <a data-link-type="dfn" href="#iso" id="ref-for-iso①">ISO</a> values.
    <dt><dfn class="dfn-paneled idl-code" data-dfn-for="MediaTrackCapabilities" data-dfn-type="dict-member" data-export id="dom-mediatrackcapabilities-focusmode"><code>focusMode</code></dfn>, <span> of type sequence&lt;<a data-link-type="idl-name" href="https://heycam.github.io/webidl/#idl-DOMString" id="ref-for-idl-DOMString⑤">DOMString</a>></span>
    <dd>A sequence of supported <a data-link-type="dfn" href="#focus-mode" id="ref-for-focus-mode①">focus modes</a>. Each string MUST be one of the members of <code class="idl"><a data-link-type="idl" href="#enumdef-meteringmode" id="ref-for-enumdef-meteringmode②">MeteringMode</a></code>.
    <dt><dfn class="dfn-paneled idl-code" data-dfn-for="MediaTrackCapabilities" data-dfn-type="dict-member" data-export id="dom-mediatrackcapabilities-brightness"><code>brightness</code></dfn>, <span> of type <a data-link-type="idl-name" href="#mediasettingsrange" id="ref-for-mediasettingsrange②①">MediaSettingsRange</a></span>
    <dd>This reflects the supported range of <a data-link-type="dfn" href="#brightness" id="ref-for-brightness①">brightness</a> setting of the camera. Values are numeric. Increasing values indicate increasing brightness.
    <dt><dfn class="dfn-paneled idl-code" data-dfn-for="MediaTrackCapabilities" data-dfn-type="dict-member" data-export id="dom-mediatrackcapabilities-contrast"><code>contrast</code></dfn>, <span> of type <a data-link-type="idl-name" href="#mediasettingsrange" id="ref-for-mediasettingsrange②②">MediaSettingsRange</a></span>
    <dd>This reflects the supported range of <a data-link-type="dfn" href="#contrast" id="ref-for-contrast①">contrast</a>. Values are numeric.  Increasing values indicate increasing contrast.
    <dt><dfn class="dfn-paneled idl-code" data-dfn-for="MediaTrackCapabilities" data-dfn-type="dict-member" data-export id="dom-mediatrackcapabilities-pan"><code>pan</code></dfn>, <span> of type <a data-link-type="idl-name" href="#mediasettingsrange" id="ref-for-mediasettingsrange②③">MediaSettingsRange</a></span>
    <dd>This reflects the <a data-link-type="dfn" href="#pan" id="ref-for-pan①">pan</a> value range supported by the UA.
    <dt><dfn class="dfn-paneled idl-code" data-dfn-for="MediaTrackCapabilities" data-dfn-type="dict-member" data-export id="dom-mediatrackcapabilities-saturation"><code>saturation</code></dfn>, <span> of type <a data-link-type="idl-name" href="#mediasettingsrange" id="ref-for-mediasettingsrange②④">MediaSettingsRange</a></span>
    <dd>This reflects the permitted range of <a data-link-type="dfn" href="#saturation" id="ref-for-saturation①">saturation</a> setting. Values are numeric. Increasing values indicate increasing saturation.
    <dt><dfn class="dfn-paneled idl-code" data-dfn-for="MediaTrackCapabilities" data-dfn-type="dict-member" data-export id="dom-mediatrackcapabilities-sharpness"><code>sharpness</code></dfn>, <span> of type <a data-link-type="idl-name" href="#mediasettingsrange" id="ref-for-mediasettingsrange②⑤">MediaSettingsRange</a></span>
    <dd>This reflects the permitted <a data-link-type="dfn" href="#sharpness" id="ref-for-sharpness①">sharpness</a> range of the camera. Values are numeric. Increasing values indicate increasing sharpness, and the minimum value always implies no sharpness enhancement or processing.
    <dt><dfn class="dfn-paneled idl-code" data-dfn-for="MediaTrackCapabilities" data-dfn-type="dict-member" data-export id="dom-mediatrackcapabilities-focusdistance"><code>focusDistance</code></dfn>, <span> of type <a data-link-type="idl-name" href="#mediasettingsrange" id="ref-for-mediasettingsrange②⑥">MediaSettingsRange</a></span>
    <dd>This reflects the <a data-link-type="dfn" href="#focus-distance" id="ref-for-focus-distance①">focus distance</a> value range supported by the UA.
    <dt><dfn class="dfn-paneled idl-code" data-dfn-for="MediaTrackCapabilities" data-dfn-type="dict-member" data-export id="dom-mediatrackcapabilities-tilt"><code>tilt</code></dfn>, <span> of type <a data-link-type="idl-name" href="#mediasettingsrange" id="ref-for-mediasettingsrange②⑦">MediaSettingsRange</a></span>
    <dd>This reflects the <a data-link-type="dfn" href="#tilt" id="ref-for-tilt①">tilt</a> value range supported by the UA.
    <dt><dfn class="dfn-paneled idl-code" data-dfn-for="MediaTrackCapabilities" data-dfn-type="dict-member" data-export id="dom-mediatrackcapabilities-zoom"><code>zoom</code></dfn>, <span> of type <a data-link-type="idl-name" href="#mediasettingsrange" id="ref-for-mediasettingsrange②⑧">MediaSettingsRange</a></span>
    <dd>This reflects the <a data-link-type="dfn" href="#zoom" id="ref-for-zoom①">zoom</a> value range supported by the UA.
    <dt><dfn class="dfn-paneled idl-code" data-dfn-for="MediaTrackCapabilities" data-dfn-type="dict-member" data-export id="dom-mediatrackcapabilities-torch"><code>torch</code></dfn>, <span> of type <a data-link-type="idl-name" href="https://heycam.github.io/webidl/#idl-boolean" id="ref-for-idl-boolean③⑦">boolean</a></span>
    <dd>A boolean indicating whether camera supports <a data-link-type="dfn" href="#torch" id="ref-for-torch①">torch</a> mode- on meaning supported.
   </dl>
   <h3 class="heading settled" data-level="9.3" id="mediatrackconstraintset-section"><span class="secno">9.3. </span><span class="content"><code class="idl"><a data-link-type="idl" href="https://www.w3.org/TR/mediacapture-streams/#idl-def-MediaTrackConstraintSet" id="ref-for-idl-def-MediaTrackConstraintSet">MediaTrackConstraintSet</a></code> dictionary</span><a class="self-link" href="#mediatrackconstraintset-section"></a></h3>
   <p><code class="idl"><a data-link-type="idl" href="https://www.w3.org/TR/mediacapture-streams/#idl-def-MediaTrackConstraintSet" id="ref-for-idl-def-MediaTrackConstraintSet①">MediaTrackConstraintSet</a></code> <a data-link-type="biblio" href="#biblio-getusermedia">[GETUSERMEDIA]</a> dictionary is used for both reading the current status with <code class="idl"><a data-link-type="idl" href="https://www.w3.org/TR/mediacapture-streams/#widl-MediaStreamTrack-getConstraints-MediaTrackConstraints" id="ref-for-widl-MediaStreamTrack-getConstraints-MediaTrackConstraints①">getConstraints()</a></code> and for applying a set of constraints with <code class="idl"><a data-link-type="idl" href="https://www.w3.org/TR/mediacapture-streams/#widl-MediaStreamTrack-applyConstraints-Promise-void--MediaTrackConstraints-constraints" id="ref-for-widl-MediaStreamTrack-applyConstraints-Promise-void--MediaTrackConstraints-constraints①">applyConstraints()</a></code>.</p>
   <div class="note" role="note"> <code class="idl"><a data-link-type="idl" href="https://www.w3.org/TR/mediacapture-streams/#idl-def-MediaTrackSettings" id="ref-for-idl-def-MediaTrackSettings">MediaTrackSettings</a></code> can be retrieved to verify the effect of the application by the user agent of the requested <code class="idl"><a data-link-type="idl" href="https://www.w3.org/TR/mediacapture-streams/#idl-def-MediaTrackConstraints" id="ref-for-idl-def-MediaTrackConstraints">MediaTrackConstraints</a></code>. Some constraints such as, e.g. <a data-link-type="dfn" href="#zoom" id="ref-for-zoom②">zoom</a>, might not be immediately applicable. </div>
<pre class="idl highlight def"><c- b>partial</c-> <c- b>dictionary</c-> <a class="idl-code" data-link-type="dictionary" href="https://www.w3.org/TR/mediacapture-streams/#idl-def-MediaTrackConstraintSet" id="ref-for-idl-def-MediaTrackConstraintSet②"><c- g>MediaTrackConstraintSet</c-></a> {
  <a class="n" data-link-type="idl-name" href="https://www.w3.org/TR/mediacapture-streams/#idl-def-constraindomstring" id="ref-for-idl-def-constraindomstring"><c- n>ConstrainDOMString</c-></a> <a class="idl-code" data-link-type="dict-member" data-type="ConstrainDOMString " href="#dom-mediatrackconstraintset-whitebalancemode" id="ref-for-dom-mediatrackconstraintset-whitebalancemode"><c- g>whiteBalanceMode</c-></a>;
  <a class="n" data-link-type="idl-name" href="https://www.w3.org/TR/mediacapture-streams/#idl-def-constraindomstring" id="ref-for-idl-def-constraindomstring①"><c- n>ConstrainDOMString</c-></a> <a class="idl-code" data-link-type="dict-member" data-type="ConstrainDOMString " href="#dom-mediatrackconstraintset-exposuremode" id="ref-for-dom-mediatrackconstraintset-exposuremode"><c- g>exposureMode</c-></a>;
  <a class="n" data-link-type="idl-name" href="https://www.w3.org/TR/mediacapture-streams/#idl-def-constraindomstring" id="ref-for-idl-def-constraindomstring②"><c- n>ConstrainDOMString</c-></a> <a class="idl-code" data-link-type="dict-member" data-type="ConstrainDOMString " href="#dom-mediatrackconstraintset-focusmode" id="ref-for-dom-mediatrackconstraintset-focusmode"><c- g>focusMode</c-></a>;
  <a class="n" data-link-type="idl-name" href="#typedefdef-constrainpoint2d" id="ref-for-typedefdef-constrainpoint2d"><c- n>ConstrainPoint2D</c-></a>   <a class="idl-code" data-link-type="dict-member" data-type="ConstrainPoint2D   " href="#dom-mediatrackconstraintset-pointsofinterest" id="ref-for-dom-mediatrackconstraintset-pointsofinterest"><c- g>pointsOfInterest</c-></a>;

  <a class="n" data-link-type="idl-name" href="https://www.w3.org/TR/mediacapture-streams/#idl-def-ConstrainDouble" id="ref-for-idl-def-ConstrainDouble"><c- n>ConstrainDouble</c-></a>    <a class="idl-code" data-link-type="dict-member" data-type="ConstrainDouble    " href="#dom-mediatrackconstraintset-exposurecompensation" id="ref-for-dom-mediatrackconstraintset-exposurecompensation"><c- g>exposureCompensation</c-></a>;
  <a class="n" data-link-type="idl-name" href="https://www.w3.org/TR/mediacapture-streams/#idl-def-ConstrainDouble" id="ref-for-idl-def-ConstrainDouble①"><c- n>ConstrainDouble</c-></a>    <a class="idl-code" data-link-type="dict-member" data-type="ConstrainDouble    " href="#dom-mediatrackconstraintset-exposuretime" id="ref-for-dom-mediatrackconstraintset-exposuretime"><c- g>exposureTime</c-></a>;
  <a class="n" data-link-type="idl-name" href="https://www.w3.org/TR/mediacapture-streams/#idl-def-ConstrainDouble" id="ref-for-idl-def-ConstrainDouble②"><c- n>ConstrainDouble</c-></a>    <a class="idl-code" data-link-type="dict-member" data-type="ConstrainDouble    " href="#dom-mediatrackconstraintset-colortemperature" id="ref-for-dom-mediatrackconstraintset-colortemperature"><c- g>colorTemperature</c-></a>;
  <a class="n" data-link-type="idl-name" href="https://www.w3.org/TR/mediacapture-streams/#idl-def-ConstrainDouble" id="ref-for-idl-def-ConstrainDouble③"><c- n>ConstrainDouble</c-></a>    <a class="idl-code" data-link-type="dict-member" data-type="ConstrainDouble    " href="#dom-mediatrackconstraintset-iso" id="ref-for-dom-mediatrackconstraintset-iso"><c- g>iso</c-></a>;

  <a class="n" data-link-type="idl-name" href="https://www.w3.org/TR/mediacapture-streams/#idl-def-ConstrainDouble" id="ref-for-idl-def-ConstrainDouble④"><c- n>ConstrainDouble</c-></a>    <a class="idl-code" data-link-type="dict-member" data-type="ConstrainDouble    " href="#dom-mediatrackconstraintset-brightness" id="ref-for-dom-mediatrackconstraintset-brightness"><c- g>brightness</c-></a>;
  <a class="n" data-link-type="idl-name" href="https://www.w3.org/TR/mediacapture-streams/#idl-def-ConstrainDouble" id="ref-for-idl-def-ConstrainDouble⑤"><c- n>ConstrainDouble</c-></a>    <a class="idl-code" data-link-type="dict-member" data-type="ConstrainDouble    " href="#dom-mediatrackconstraintset-contrast" id="ref-for-dom-mediatrackconstraintset-contrast"><c- g>contrast</c-></a>;
  <a class="n" data-link-type="idl-name" href="https://www.w3.org/TR/mediacapture-streams/#idl-def-ConstrainDouble" id="ref-for-idl-def-ConstrainDouble⑥"><c- n>ConstrainDouble</c-></a>    <a class="idl-code" data-link-type="dict-member" data-type="ConstrainDouble    " href="#dom-mediatrackconstraintset-saturation" id="ref-for-dom-mediatrackconstraintset-saturation"><c- g>saturation</c-></a>;
  <a class="n" data-link-type="idl-name" href="https://www.w3.org/TR/mediacapture-streams/#idl-def-ConstrainDouble" id="ref-for-idl-def-ConstrainDouble⑦"><c- n>ConstrainDouble</c-></a>    <a class="idl-code" data-link-type="dict-member" data-type="ConstrainDouble    " href="#dom-mediatrackconstraintset-sharpness" id="ref-for-dom-mediatrackconstraintset-sharpness"><c- g>sharpness</c-></a>;

  <a class="n" data-link-type="idl-name" href="https://www.w3.org/TR/mediacapture-streams/#idl-def-ConstrainDouble" id="ref-for-idl-def-ConstrainDouble⑧"><c- n>ConstrainDouble</c-></a>    <a class="idl-code" data-link-type="dict-member" data-type="ConstrainDouble    " href="#dom-mediatrackconstraintset-focusdistance" id="ref-for-dom-mediatrackconstraintset-focusdistance"><c- g>focusDistance</c-></a>;
  <a class="n" data-link-type="idl-name" href="https://www.w3.org/TR/mediacapture-streams/#idl-def-ConstrainDouble" id="ref-for-idl-def-ConstrainDouble⑨"><c- n>ConstrainDouble</c-></a>    <a class="idl-code" data-link-type="dict-member" data-type="ConstrainDouble    " href="#dom-mediatrackconstraintset-pan" id="ref-for-dom-mediatrackconstraintset-pan"><c- g>pan</c-></a>;
  <a class="n" data-link-type="idl-name" href="https://www.w3.org/TR/mediacapture-streams/#idl-def-ConstrainDouble" id="ref-for-idl-def-ConstrainDouble①⓪"><c- n>ConstrainDouble</c-></a>    <a class="idl-code" data-link-type="dict-member" data-type="ConstrainDouble    " href="#dom-mediatrackconstraintset-tilt" id="ref-for-dom-mediatrackconstraintset-tilt"><c- g>tilt</c-></a>;
  <a class="n" data-link-type="idl-name" href="https://www.w3.org/TR/mediacapture-streams/#idl-def-ConstrainDouble" id="ref-for-idl-def-ConstrainDouble①①"><c- n>ConstrainDouble</c-></a>    <a class="idl-code" data-link-type="dict-member" data-type="ConstrainDouble    " href="#dom-mediatrackconstraintset-zoom" id="ref-for-dom-mediatrackconstraintset-zoom"><c- g>zoom</c-></a>;

  <a class="n" data-link-type="idl-name" href="https://www.w3.org/TR/mediacapture-streams/#idl-def-ConstrainBoolean" id="ref-for-idl-def-ConstrainBoolean"><c- n>ConstrainBoolean</c-></a>   <a class="idl-code" data-link-type="dict-member" data-type="ConstrainBoolean   " href="#dom-mediatrackconstraintset-torch" id="ref-for-dom-mediatrackconstraintset-torch"><c- g>torch</c-></a>;
};
</pre>
   <h4 class="heading settled" data-level="9.3.1" id="mediatrackconstraintset-members"><span class="secno">9.3.1. </span><span class="content">Members</span><a class="self-link" href="#mediatrackconstraintset-members"></a></h4>
   <dl class="domintro">
    <dt><dfn class="dfn-paneled idl-code" data-dfn-for="MediaTrackConstraintSet" data-dfn-type="dict-member" data-export id="dom-mediatrackconstraintset-whitebalancemode"><code>whiteBalanceMode</code></dfn>, <span> of type <a data-link-type="idl-name" href="https://www.w3.org/TR/mediacapture-streams/#idl-def-constraindomstring" id="ref-for-idl-def-constraindomstring③">ConstrainDOMString</a></span>
    <dd>This string MUST be one of the members of <code class="idl"><a data-link-type="idl" href="#enumdef-meteringmode" id="ref-for-enumdef-meteringmode③">MeteringMode</a></code>. See <a data-link-type="dfn" href="#white-balance-mode" id="ref-for-white-balance-mode②">white balance mode</a> constrainable property.
    <dt><dfn class="dfn-paneled idl-code" data-dfn-for="MediaTrackConstraintSet" data-dfn-type="dict-member" data-export id="dom-mediatrackconstraintset-exposuremode"><code>exposureMode</code></dfn>, <span> of type <a data-link-type="idl-name" href="https://www.w3.org/TR/mediacapture-streams/#idl-def-constraindomstring" id="ref-for-idl-def-constraindomstring④">ConstrainDOMString</a></span>
    <dd>This string MUST be one of the members of <code class="idl"><a data-link-type="idl" href="#enumdef-meteringmode" id="ref-for-enumdef-meteringmode④">MeteringMode</a></code>. See <a data-link-type="dfn" href="#exposure" id="ref-for-exposure②">exposure</a> constrainable property.
    <dt><dfn class="dfn-paneled idl-code" data-dfn-for="MediaTrackConstraintSet" data-dfn-type="dict-member" data-export id="dom-mediatrackconstraintset-focusmode"><code>focusMode</code></dfn>, <span> of type <a data-link-type="idl-name" href="https://www.w3.org/TR/mediacapture-streams/#idl-def-constraindomstring" id="ref-for-idl-def-constraindomstring⑤">ConstrainDOMString</a></span>
    <dd>This string MUST be one of the members of <code class="idl"><a data-link-type="idl" href="#enumdef-meteringmode" id="ref-for-enumdef-meteringmode⑤">MeteringMode</a></code>. See <a data-link-type="dfn" href="#focus-mode" id="ref-for-focus-mode②">focus mode</a> constrainable property.
    <dt><dfn class="dfn-paneled idl-code" data-dfn-for="MediaTrackConstraintSet" data-dfn-type="dict-member" data-export id="dom-mediatrackconstraintset-colortemperature"><code>colorTemperature</code></dfn>, <span> of type <a data-link-type="idl-name" href="https://www.w3.org/TR/mediacapture-streams/#idl-def-ConstrainDouble" id="ref-for-idl-def-ConstrainDouble①②">ConstrainDouble</a></span>
    <dd>See <a data-link-type="dfn" href="#color-temperature" id="ref-for-color-temperature②">color temperature</a> constrainable property.
    <dt><dfn class="dfn-paneled idl-code" data-dfn-for="MediaTrackConstraintSet" data-dfn-type="dict-member" data-export id="dom-mediatrackconstraintset-exposurecompensation"><code>exposureCompensation</code></dfn>, <span> of type <a data-link-type="idl-name" href="https://www.w3.org/TR/mediacapture-streams/#idl-def-ConstrainDouble" id="ref-for-idl-def-ConstrainDouble①③">ConstrainDouble</a></span>
    <dd>See <a data-link-type="dfn" href="#exposure-compensation" id="ref-for-exposure-compensation②">exposure compensation</a> constrainable property.
    <dt><dfn class="dfn-paneled idl-code" data-dfn-for="MediaTrackConstraintSet" data-dfn-type="dict-member" data-export id="dom-mediatrackconstraintset-exposuretime"><code>exposureTime</code></dfn>, <span> of type <a data-link-type="idl-name" href="https://www.w3.org/TR/mediacapture-streams/#idl-def-ConstrainDouble" id="ref-for-idl-def-ConstrainDouble①④">ConstrainDouble</a></span>
    <dd>See <a data-link-type="dfn" href="#exposure-time" id="ref-for-exposure-time②">exposure time</a> constrainable property.
    <dt><dfn class="dfn-paneled idl-code" data-dfn-for="MediaTrackConstraintSet" data-dfn-type="dict-member" data-export id="dom-mediatrackconstraintset-iso"><code>iso</code></dfn>, <span> of type <a data-link-type="idl-name" href="https://www.w3.org/TR/mediacapture-streams/#idl-def-ConstrainDouble" id="ref-for-idl-def-ConstrainDouble①⑤">ConstrainDouble</a></span>
    <dd>See <a data-link-type="dfn" href="#iso" id="ref-for-iso②">iso</a> constrainable property.
    <dt><dfn class="dfn-paneled idl-code" data-dfn-for="MediaTrackConstraintSet" data-dfn-type="dict-member" data-export id="dom-mediatrackconstraintset-pointsofinterest"><code>pointsOfInterest</code></dfn>, <span> of type <a data-link-type="idl-name" href="#typedefdef-constrainpoint2d" id="ref-for-typedefdef-constrainpoint2d①">ConstrainPoint2D</a></span>
    <dd>See <a data-link-type="dfn" href="#points-of-interest" id="ref-for-points-of-interest①">points of interest</a> constrainable property.
    <dt><dfn class="dfn-paneled idl-code" data-dfn-for="MediaTrackConstraintSet" data-dfn-type="dict-member" data-export id="dom-mediatrackconstraintset-brightness"><code>brightness</code></dfn>, <span> of type <a data-link-type="idl-name" href="https://www.w3.org/TR/mediacapture-streams/#idl-def-ConstrainDouble" id="ref-for-idl-def-ConstrainDouble①⑥">ConstrainDouble</a></span>
    <dd>See <a data-link-type="dfn" href="#brightness" id="ref-for-brightness②">brightness</a> constrainable property.
    <dt><dfn class="dfn-paneled idl-code" data-dfn-for="MediaTrackConstraintSet" data-dfn-type="dict-member" data-export id="dom-mediatrackconstraintset-contrast"><code>contrast</code></dfn>, <span> of type <a data-link-type="idl-name" href="https://www.w3.org/TR/mediacapture-streams/#idl-def-ConstrainDouble" id="ref-for-idl-def-ConstrainDouble①⑦">ConstrainDouble</a></span>
    <dd>See <a data-link-type="dfn" href="#contrast" id="ref-for-contrast②">contrast</a> constrainable property.
    <dt><dfn class="dfn-paneled idl-code" data-dfn-for="MediaTrackConstraintSet" data-dfn-type="dict-member" data-export id="dom-mediatrackconstraintset-pan"><code>pan</code></dfn>, <span> of type <a data-link-type="idl-name" href="https://www.w3.org/TR/mediacapture-streams/#idl-def-ConstrainDouble" id="ref-for-idl-def-ConstrainDouble①⑧">ConstrainDouble</a></span>
    <dd>See <a data-link-type="dfn" href="#pan" id="ref-for-pan②">pan</a> constrainable property.
    <dt><dfn class="dfn-paneled idl-code" data-dfn-for="MediaTrackConstraintSet" data-dfn-type="dict-member" data-export id="dom-mediatrackconstraintset-saturation"><code>saturation</code></dfn>, <span> of type <a data-link-type="idl-name" href="https://www.w3.org/TR/mediacapture-streams/#idl-def-ConstrainDouble" id="ref-for-idl-def-ConstrainDouble①⑨">ConstrainDouble</a></span>
    <dd>See <a data-link-type="dfn" href="#saturation" id="ref-for-saturation②">saturation</a> constrainable property.
    <dt><dfn class="dfn-paneled idl-code" data-dfn-for="MediaTrackConstraintSet" data-dfn-type="dict-member" data-export id="dom-mediatrackconstraintset-sharpness"><code>sharpness</code></dfn>, <span> of type <a data-link-type="idl-name" href="https://www.w3.org/TR/mediacapture-streams/#idl-def-ConstrainDouble" id="ref-for-idl-def-ConstrainDouble②⓪">ConstrainDouble</a></span>
    <dd>See <a data-link-type="dfn" href="#sharpness" id="ref-for-sharpness②">sharpness</a> constrainable property.
    <dt><dfn class="dfn-paneled idl-code" data-dfn-for="MediaTrackConstraintSet" data-dfn-type="dict-member" data-export id="dom-mediatrackconstraintset-focusdistance"><code>focusDistance</code></dfn>, <span> of type <a data-link-type="idl-name" href="https://www.w3.org/TR/mediacapture-streams/#idl-def-ConstrainDouble" id="ref-for-idl-def-ConstrainDouble②①">ConstrainDouble</a></span>
    <dd>See <a data-link-type="dfn" href="#focus-distance" id="ref-for-focus-distance②">focus distance</a> constrainable property.
    <dt><dfn class="dfn-paneled idl-code" data-dfn-for="MediaTrackConstraintSet" data-dfn-type="dict-member" data-export id="dom-mediatrackconstraintset-tilt"><code>tilt</code></dfn>, <span> of type <a data-link-type="idl-name" href="https://www.w3.org/TR/mediacapture-streams/#idl-def-ConstrainDouble" id="ref-for-idl-def-ConstrainDouble②②">ConstrainDouble</a></span>
    <dd>See <a data-link-type="dfn" href="#tilt" id="ref-for-tilt②">tilt</a> constrainable property.
    <dt><dfn class="dfn-paneled idl-code" data-dfn-for="MediaTrackConstraintSet" data-dfn-type="dict-member" data-export id="dom-mediatrackconstraintset-zoom"><code>zoom</code></dfn>, <span> of type <a data-link-type="idl-name" href="https://www.w3.org/TR/mediacapture-streams/#idl-def-ConstrainDouble" id="ref-for-idl-def-ConstrainDouble②③">ConstrainDouble</a></span>
    <dd>See <a data-link-type="dfn" href="#zoom" id="ref-for-zoom③">zoom</a> constrainable property.
    <dt><dfn class="dfn-paneled idl-code" data-dfn-for="MediaTrackConstraintSet" data-dfn-type="dict-member" data-export id="dom-mediatrackconstraintset-torch"><code>torch</code></dfn>, <span> of type <a data-link-type="idl-name" href="https://www.w3.org/TR/mediacapture-streams/#idl-def-ConstrainBoolean" id="ref-for-idl-def-ConstrainBoolean①">ConstrainBoolean</a></span>
    <dd>See <a data-link-type="dfn" href="#torch" id="ref-for-torch②">torch</a> constrainable property.
   </dl>
   <h3 class="heading settled" data-level="9.4" id="mediatracksettings-section"><span class="secno">9.4. </span><span class="content"><code class="idl"><a data-link-type="idl" href="https://www.w3.org/TR/mediacapture-streams/#idl-def-MediaTrackSettings" id="ref-for-idl-def-MediaTrackSettings①">MediaTrackSettings</a></code> dictionary</span><a class="self-link" href="#mediatracksettings-section"></a></h3>
   <p>When the <code class="idl"><a data-link-type="idl" href="https://www.w3.org/TR/mediacapture-streams/#widl-ConstrainablePattern-getSettings-Settings" id="ref-for-widl-ConstrainablePattern-getSettings-Settings①">getSettings()</a></code> method is invoked on a video stream track, the user agent must return the extended <code class="idl"><a data-link-type="idl" href="https://www.w3.org/TR/mediacapture-streams/#idl-def-MediaTrackSettings" id="ref-for-idl-def-MediaTrackSettings②">MediaTrackSettings</a></code> dictionary, representing the current status of the underlying user agent.</p>
<pre class="idl highlight def"><c- b>partial</c-> <c- b>dictionary</c-> <a class="idl-code" data-link-type="dictionary" href="https://www.w3.org/TR/mediacapture-streams/#idl-def-MediaTrackSettings" id="ref-for-idl-def-MediaTrackSettings③"><c- g>MediaTrackSettings</c-></a> {
  <a class="idl-code" data-link-type="interface" href="https://heycam.github.io/webidl/#idl-DOMString" id="ref-for-idl-DOMString⑥"><c- b>DOMString</c-></a>         <a class="idl-code" data-link-type="dict-member" data-type="DOMString         " href="#dom-mediatracksettings-whitebalancemode" id="ref-for-dom-mediatracksettings-whitebalancemode"><c- g>whiteBalanceMode</c-></a>;
  <a class="idl-code" data-link-type="interface" href="https://heycam.github.io/webidl/#idl-DOMString" id="ref-for-idl-DOMString⑦"><c- b>DOMString</c-></a>         <a class="idl-code" data-link-type="dict-member" data-type="DOMString         " href="#dom-mediatracksettings-exposuremode" id="ref-for-dom-mediatracksettings-exposuremode"><c- g>exposureMode</c-></a>;
  <a class="idl-code" data-link-type="interface" href="https://heycam.github.io/webidl/#idl-DOMString" id="ref-for-idl-DOMString⑧"><c- b>DOMString</c-></a>         <a class="idl-code" data-link-type="dict-member" data-type="DOMString         " href="#dom-mediatracksettings-focusmode" id="ref-for-dom-mediatracksettings-focusmode"><c- g>focusMode</c-></a>;
  <c- b>sequence</c->&lt;<a class="n" data-link-type="idl-name" href="#dictdef-point2d" id="ref-for-dictdef-point2d"><c- n>Point2D</c-></a>> <a class="idl-code" data-link-type="dict-member" data-type="sequence<Point2D> " href="#dom-mediatracksettings-pointsofinterest" id="ref-for-dom-mediatracksettings-pointsofinterest"><c- g>pointsOfInterest</c-></a>;

  <a class="idl-code" data-link-type="interface" href="https://heycam.github.io/webidl/#idl-double" id="ref-for-idl-double①⓪"><c- b>double</c-></a>            <a class="idl-code" data-link-type="dict-member" data-type="double            " href="#dom-mediatracksettings-exposurecompensation" id="ref-for-dom-mediatracksettings-exposurecompensation"><c- g>exposureCompensation</c-></a>;
  <a class="idl-code" data-link-type="interface" href="https://heycam.github.io/webidl/#idl-double" id="ref-for-idl-double①①"><c- b>double</c-></a>            <a class="idl-code" data-link-type="dict-member" data-type="double            " href="#dom-mediatracksettings-exposuretime" id="ref-for-dom-mediatracksettings-exposuretime"><c- g>exposureTime</c-></a>;
  <a class="idl-code" data-link-type="interface" href="https://heycam.github.io/webidl/#idl-double" id="ref-for-idl-double①②"><c- b>double</c-></a>            <a class="idl-code" data-link-type="dict-member" data-type="double            " href="#dom-mediatracksettings-colortemperature" id="ref-for-dom-mediatracksettings-colortemperature"><c- g>colorTemperature</c-></a>;
  <a class="idl-code" data-link-type="interface" href="https://heycam.github.io/webidl/#idl-double" id="ref-for-idl-double①③"><c- b>double</c-></a>            <a class="idl-code" data-link-type="dict-member" data-type="double            " href="#dom-mediatracksettings-iso" id="ref-for-dom-mediatracksettings-iso"><c- g>iso</c-></a>;

  <a class="idl-code" data-link-type="interface" href="https://heycam.github.io/webidl/#idl-double" id="ref-for-idl-double①④"><c- b>double</c-></a>            <a class="idl-code" data-link-type="dict-member" data-type="double            " href="#dom-mediatracksettings-brightness" id="ref-for-dom-mediatracksettings-brightness"><c- g>brightness</c-></a>;
  <a class="idl-code" data-link-type="interface" href="https://heycam.github.io/webidl/#idl-double" id="ref-for-idl-double①⑤"><c- b>double</c-></a>            <a class="idl-code" data-link-type="dict-member" data-type="double            " href="#dom-mediatracksettings-contrast" id="ref-for-dom-mediatracksettings-contrast"><c- g>contrast</c-></a>;
  <a class="idl-code" data-link-type="interface" href="https://heycam.github.io/webidl/#idl-double" id="ref-for-idl-double①⑥"><c- b>double</c-></a>            <a class="idl-code" data-link-type="dict-member" data-type="double            " href="#dom-mediatracksettings-saturation" id="ref-for-dom-mediatracksettings-saturation"><c- g>saturation</c-></a>;
  <a class="idl-code" data-link-type="interface" href="https://heycam.github.io/webidl/#idl-double" id="ref-for-idl-double①⑦"><c- b>double</c-></a>            <a class="idl-code" data-link-type="dict-member" data-type="double            " href="#dom-mediatracksettings-sharpness" id="ref-for-dom-mediatracksettings-sharpness"><c- g>sharpness</c-></a>;

  <a class="idl-code" data-link-type="interface" href="https://heycam.github.io/webidl/#idl-double" id="ref-for-idl-double①⑧"><c- b>double</c-></a>            <a class="idl-code" data-link-type="dict-member" data-type="double            " href="#dom-mediatracksettings-focusdistance" id="ref-for-dom-mediatracksettings-focusdistance"><c- g>focusDistance</c-></a>;
  <a class="idl-code" data-link-type="interface" href="https://heycam.github.io/webidl/#idl-double" id="ref-for-idl-double①⑨"><c- b>double</c-></a>            <a class="idl-code" data-link-type="dict-member" data-type="double            " href="#dom-mediatracksettings-pan" id="ref-for-dom-mediatracksettings-pan"><c- g>pan</c-></a>;
  <a class="idl-code" data-link-type="interface" href="https://heycam.github.io/webidl/#idl-double" id="ref-for-idl-double②⓪"><c- b>double</c-></a>            <a class="idl-code" data-link-type="dict-member" data-type="double            " href="#dom-mediatracksettings-tilt" id="ref-for-dom-mediatracksettings-tilt"><c- g>tilt</c-></a>;
  <a class="idl-code" data-link-type="interface" href="https://heycam.github.io/webidl/#idl-double" id="ref-for-idl-double②①"><c- b>double</c-></a>            <a class="idl-code" data-link-type="dict-member" data-type="double            " href="#dom-mediatracksettings-zoom" id="ref-for-dom-mediatracksettings-zoom"><c- g>zoom</c-></a>;

  <a class="idl-code" data-link-type="interface" href="https://heycam.github.io/webidl/#idl-boolean" id="ref-for-idl-boolean③⑧"><c- b>boolean</c-></a>           <a class="idl-code" data-link-type="dict-member" data-type="boolean           " href="#dom-mediatracksettings-torch" id="ref-for-dom-mediatracksettings-torch"><c- g>torch</c-></a>;
};
</pre>
   <h4 class="heading settled" data-level="9.4.1" id="mediatracksettings-members"><span class="secno">9.4.1. </span><span class="content">Members</span><a class="self-link" href="#mediatracksettings-members"></a></h4>
   <dl class="domintro">
    <dt><dfn class="dfn-paneled idl-code" data-dfn-for="MediaTrackSettings" data-dfn-type="dict-member" data-export id="dom-mediatracksettings-whitebalancemode"><code>whiteBalanceMode</code></dfn>, <span> of type <a data-link-type="idl-name" href="https://heycam.github.io/webidl/#idl-DOMString" id="ref-for-idl-DOMString⑨">DOMString</a></span>
    <dd>Current <a data-link-type="dfn" href="#white-balance-mode" id="ref-for-white-balance-mode③">white balance mode</a> setting. The string MUST be one of the members of <code class="idl"><a data-link-type="idl" href="#enumdef-meteringmode" id="ref-for-enumdef-meteringmode⑥">MeteringMode</a></code>.
    <dt><dfn class="dfn-paneled idl-code" data-dfn-for="MediaTrackSettings" data-dfn-type="dict-member" data-export id="dom-mediatracksettings-exposuremode"><code>exposureMode</code></dfn>, <span> of type <a data-link-type="idl-name" href="https://heycam.github.io/webidl/#idl-DOMString" id="ref-for-idl-DOMString①⓪">DOMString</a></span>
    <dd>Current <a data-link-type="dfn" href="#exposure" id="ref-for-exposure③">exposure</a> mode setting. The string MUST be one of the members of <code class="idl"><a data-link-type="idl" href="#enumdef-meteringmode" id="ref-for-enumdef-meteringmode⑦">MeteringMode</a></code>.
    <dt><dfn class="dfn-paneled idl-code" data-dfn-for="MediaTrackSettings" data-dfn-type="dict-member" data-export id="dom-mediatracksettings-colortemperature"><code>colorTemperature</code></dfn>, <span> of type <a data-link-type="idl-name" href="https://heycam.github.io/webidl/#idl-double" id="ref-for-idl-double②②">double</a></span>
    <dd><a data-link-type="dfn" href="#color-temperature" id="ref-for-color-temperature③">Color temperature</a> in use for the white balance calculation of the scene. This field is only significant if <code class="idl"><a data-link-type="idl" href="#dom-mediatracksettings-whitebalancemode" id="ref-for-dom-mediatracksettings-whitebalancemode①">whiteBalanceMode</a></code> is <code class="idl"><a data-link-type="idl" href="#dom-meteringmode-manual" id="ref-for-dom-meteringmode-manual">manual</a></code>.
    <dt><dfn class="dfn-paneled idl-code" data-dfn-for="MediaTrackSettings" data-dfn-type="dict-member" data-export id="dom-mediatracksettings-exposurecompensation"><code>exposureCompensation</code></dfn>, <span> of type <a data-link-type="idl-name" href="https://heycam.github.io/webidl/#idl-double" id="ref-for-idl-double②③">double</a></span>
    <dd>Current <a data-link-type="dfn" href="#exposure-compensation" id="ref-for-exposure-compensation③">exposure compensation</a> setting.  A value of 0 EV is interpreted as no exposure compensation. This field is only significant if <code class="idl"><a data-link-type="idl" href="#dom-mediatracksettings-exposuremode" id="ref-for-dom-mediatracksettings-exposuremode①">exposureMode</a></code> is <code class="idl"><a data-link-type="idl" href="#dom-meteringmode-continuous" id="ref-for-dom-meteringmode-continuous">continuous</a></code> or <code class="idl"><a data-link-type="idl" href="#dom-meteringmode-single-shot" id="ref-for-dom-meteringmode-single-shot">single-shot</a></code>
    <dt><dfn class="dfn-paneled idl-code" data-dfn-for="MediaTrackSettings" data-dfn-type="dict-member" data-export id="dom-mediatracksettings-exposuretime"><code>exposureTime</code></dfn>, <span> of type <a data-link-type="idl-name" href="https://heycam.github.io/webidl/#idl-double" id="ref-for-idl-double②④">double</a></span>
    <dd>Current <a data-link-type="dfn" href="#exposure-time" id="ref-for-exposure-time③">exposure time</a> setting. This field is only significant if <code class="idl"><a data-link-type="idl" href="#dom-mediatracksettings-exposuremode" id="ref-for-dom-mediatracksettings-exposuremode②">exposureMode</a></code> is <code class="idl"><a data-link-type="idl" href="#dom-meteringmode-manual" id="ref-for-dom-meteringmode-manual①">manual</a></code>.
    <dt><dfn class="dfn-paneled idl-code" data-dfn-for="MediaTrackSettings" data-dfn-type="dict-member" data-export id="dom-mediatracksettings-iso"><code>iso</code></dfn>, <span> of type <a data-link-type="idl-name" href="https://heycam.github.io/webidl/#idl-double" id="ref-for-idl-double②⑤">double</a></span>
    <dd>Current camera <a data-link-type="dfn" href="#iso" id="ref-for-iso③">ISO</a> setting.
    <dt><dfn class="dfn-paneled idl-code" data-dfn-for="MediaTrackSettings" data-dfn-type="dict-member" data-export id="dom-mediatracksettings-focusmode"><code>focusMode</code></dfn>, <span> of type <a data-link-type="idl-name" href="https://heycam.github.io/webidl/#idl-DOMString" id="ref-for-idl-DOMString①①">DOMString</a></span>
    <dd>Current <a data-link-type="dfn" href="#focus-mode" id="ref-for-focus-mode③">focus mode</a> setting. The string MUST be one of the members of <code class="idl"><a data-link-type="idl" href="#enumdef-meteringmode" id="ref-for-enumdef-meteringmode⑧">MeteringMode</a></code>.
    <dt><dfn class="dfn-paneled idl-code" data-dfn-for="MediaTrackSettings" data-dfn-type="dict-member" data-export id="dom-mediatracksettings-pointsofinterest"><code>pointsOfInterest</code></dfn>, <span> of type sequence&lt;<a data-link-type="idl-name" href="#dictdef-point2d" id="ref-for-dictdef-point2d①">Point2D</a>></span>
    <dd>A sequence of <code class="idl"><a data-link-type="idl" href="#dictdef-point2d" id="ref-for-dictdef-point2d②">Point2D</a></code>s in use as <a data-link-type="dfn" href="#points-of-interest" id="ref-for-points-of-interest②">points of interest</a> for other settings, e.g. Focus, Exposure and Auto White Balance.
    <dt><dfn class="dfn-paneled idl-code" data-dfn-for="MediaTrackSettings" data-dfn-type="dict-member" data-export id="dom-mediatracksettings-brightness"><code>brightness</code></dfn>, <span> of type <a data-link-type="idl-name" href="https://heycam.github.io/webidl/#idl-double" id="ref-for-idl-double②⑥">double</a></span>
    <dd>This reflects the current <a data-link-type="dfn" href="#brightness" id="ref-for-brightness③">brightness</a> setting of the camera.
    <dt><dfn class="dfn-paneled idl-code" data-dfn-for="MediaTrackSettings" data-dfn-type="dict-member" data-export id="dom-mediatracksettings-contrast"><code>contrast</code></dfn>, <span> of type <a data-link-type="idl-name" href="https://heycam.github.io/webidl/#idl-double" id="ref-for-idl-double②⑦">double</a></span>
    <dd>This reflects the current <a data-link-type="dfn" href="#contrast" id="ref-for-contrast③">contrast</a> setting of the camera.
    <dt><dfn class="dfn-paneled idl-code" data-dfn-for="MediaTrackSettings" data-dfn-type="dict-member" data-export id="dom-mediatracksettings-pan"><code>pan</code></dfn>, <span> of type <a data-link-type="idl-name" href="https://heycam.github.io/webidl/#idl-double" id="ref-for-idl-double②⑧">double</a></span>
    <dd>This reflects the current <a data-link-type="dfn" href="#pan" id="ref-for-pan③">pan</a> setting of the camera.
    <dt><dfn class="dfn-paneled idl-code" data-dfn-for="MediaTrackSettings" data-dfn-type="dict-member" data-export id="dom-mediatracksettings-saturation"><code>saturation</code></dfn>, <span> of type <a data-link-type="idl-name" href="https://heycam.github.io/webidl/#idl-double" id="ref-for-idl-double②⑨">double</a></span>
    <dd>This reflects the current <a data-link-type="dfn" href="#saturation" id="ref-for-saturation③">saturation</a> setting of the camera.
    <dt><dfn class="dfn-paneled idl-code" data-dfn-for="MediaTrackSettings" data-dfn-type="dict-member" data-export id="dom-mediatracksettings-sharpness"><code>sharpness</code></dfn>, <span> of type <a data-link-type="idl-name" href="https://heycam.github.io/webidl/#idl-double" id="ref-for-idl-double③⓪">double</a></span>
    <dd>This reflects the current <a data-link-type="dfn" href="#sharpness" id="ref-for-sharpness③">sharpness</a> setting of the camera.
    <dt><dfn class="dfn-paneled idl-code" data-dfn-for="MediaTrackSettings" data-dfn-type="dict-member" data-export id="dom-mediatracksettings-focusdistance"><code>focusDistance</code></dfn>, <span> of type <a data-link-type="idl-name" href="https://heycam.github.io/webidl/#idl-double" id="ref-for-idl-double③①">double</a></span>
    <dd>This reflects the current <a data-link-type="dfn" href="#focus-distance" id="ref-for-focus-distance③">focus distance</a> setting of the camera.
    <dt><dfn class="dfn-paneled idl-code" data-dfn-for="MediaTrackSettings" data-dfn-type="dict-member" data-export id="dom-mediatracksettings-tilt"><code>tilt</code></dfn>, <span> of type <a data-link-type="idl-name" href="https://heycam.github.io/webidl/#idl-double" id="ref-for-idl-double③②">double</a></span>
    <dd>This reflects the current <a data-link-type="dfn" href="#tilt" id="ref-for-tilt③">tilt</a> setting of the camera.
    <dt><dfn class="dfn-paneled idl-code" data-dfn-for="MediaTrackSettings" data-dfn-type="dict-member" data-export id="dom-mediatracksettings-zoom"><code>zoom</code></dfn>, <span> of type <a data-link-type="idl-name" href="https://heycam.github.io/webidl/#idl-double" id="ref-for-idl-double③③">double</a></span>
    <dd>This reflects the current <a data-link-type="dfn" href="#zoom" id="ref-for-zoom④">zoom</a> setting of the camera.
    <dt><dfn class="dfn-paneled idl-code" data-dfn-for="MediaTrackSettings" data-dfn-type="dict-member" data-export id="dom-mediatracksettings-torch"><code>torch</code></dfn>, <span> of type <a data-link-type="idl-name" href="https://heycam.github.io/webidl/#idl-boolean" id="ref-for-idl-boolean③⑨">boolean</a></span>
    <dd>Current camera <a data-link-type="dfn" href="#torch" id="ref-for-torch③">torch</a> configuration setting.
   </dl>
   <h3 class="heading settled" data-level="9.5" id="additional-constrainable-props"><span class="secno">9.5. </span><span class="content">Additional Constrainable Properties</span><a class="self-link" href="#additional-constrainable-props"></a></h3>
<pre class="idl highlight def"><c- b>dictionary</c-> <dfn class="dfn-paneled idl-code" data-dfn-type="dictionary" data-export id="dictdef-constrainpoint2dparameters"><code><c- g>ConstrainPoint2DParameters</c-></code></dfn> {
  <c- b>sequence</c->&lt;<a class="n" data-link-type="idl-name" href="#dictdef-point2d" id="ref-for-dictdef-point2d③"><c- n>Point2D</c-></a>> <a class="idl-code" data-link-type="dict-member" data-type="sequence<Point2D> " href="#dom-constrainpoint2dparameters-exact" id="ref-for-dom-constrainpoint2dparameters-exact"><c- g>exact</c-></a>;
  <c- b>sequence</c->&lt;<a class="n" data-link-type="idl-name" href="#dictdef-point2d" id="ref-for-dictdef-point2d④"><c- n>Point2D</c-></a>> <a class="idl-code" data-link-type="dict-member" data-type="sequence<Point2D> " href="#dom-constrainpoint2dparameters-ideal" id="ref-for-dom-constrainpoint2dparameters-ideal"><c- g>ideal</c-></a>;
};

<c- b>typedef</c-> (<c- b>sequence</c->&lt;<a class="n" data-link-type="idl-name" href="#dictdef-point2d" id="ref-for-dictdef-point2d⑤"><c- n>Point2D</c-></a>> <c- b>or</c-> <a class="n" data-link-type="idl-name" href="#dictdef-constrainpoint2dparameters" id="ref-for-dictdef-constrainpoint2dparameters"><c- n>ConstrainPoint2DParameters</c-></a>) <dfn class="dfn-paneled idl-code" data-dfn-type="typedef" data-export id="typedefdef-constrainpoint2d"><code><c- g>ConstrainPoint2D</c-></code></dfn>;
</pre>
   <h4 class="heading settled" data-level="9.5.1" id="constraintpoint2d-members"><span class="secno">9.5.1. </span><span class="content">Members</span><a class="self-link" href="#constraintpoint2d-members"></a></h4>
   <dl class="domintro">
    <dt><dfn class="dfn-paneled idl-code" data-dfn-for="ConstrainPoint2DParameters" data-dfn-type="dict-member" data-export id="dom-constrainpoint2dparameters-exact"><code>exact</code></dfn>, <span> of type sequence&lt;<a data-link-type="idl-name" href="#dictdef-point2d" id="ref-for-dictdef-point2d⑥">Point2D</a>></span>
    <dd>The exact required value of <a data-link-type="dfn" href="#points-of-interest" id="ref-for-points-of-interest③">points of interest</a>.
    <dt><dfn class="dfn-paneled idl-code" data-dfn-for="ConstrainPoint2DParameters" data-dfn-type="dict-member" data-export id="dom-constrainpoint2dparameters-ideal"><code>ideal</code></dfn>, <span> of type sequence&lt;<a data-link-type="idl-name" href="#dictdef-point2d" id="ref-for-dictdef-point2d⑦">Point2D</a>></span>
    <dd>The ideal (target) value of <a data-link-type="dfn" href="#points-of-interest" id="ref-for-points-of-interest④">points of interest</a>.
   </dl>
   <h2 class="heading settled" data-level="10" id="constrainable-properties"><span class="secno">10. </span><span class="content">Photo Capabilities and Constrainable Properties</span><a class="self-link" href="#constrainable-properties"></a></h2>
   <div class="note" role="note"> Many of the mentioned photo and video capabilities mirror hardware features that are hard to define since can be implemented in a number of ways.  Moreover, manufacturers tend to publish vague definitions to protect their intellectual property. </div>
   <ol>
    <li>
     <i><dfn class="dfn-paneled" data-dfn-type="dfn" data-noexport id="white-balance-mode">White balance mode</dfn></i> is a setting that cameras use to adjust for different color temperatures. <dfn class="dfn-paneled" data-dfn-type="dfn" data-noexport id="color-temperature">Color temperature</dfn> is the temperature of background light (usually measured in Kelvin).  This setting can usually be automatically and continuously determined by the implementation, but it’s also common to offer a <code>manual</code> mode in which the estimated temperature of the scene illumination is hinted to the implementation.  Typical temperature ranges for popular modes are provided below: 
     <table class="simple">
      <tbody>
       <tr>
        <th>Mode
        <th>Kelvin range
       <tr>
        <td>incandescent
        <td>2500-3500
       <tr>
        <td>fluorescent
        <td>4000-5000
       <tr>
        <td>warm-fluorescent
        <td>5000-5500
       <tr>
        <td>daylight
        <td>5500-6500
       <tr>
        <td>cloudy-daylight
        <td>6500-8000
       <tr>
        <td>twilight
        <td>8000-9000
       <tr>
        <td>shade
        <td>9000-10000
     </table>
    <li><i><dfn class="dfn-paneled" data-dfn-type="dfn" data-noexport id="exposure">Exposure</dfn></i> is the amount of light that is allowed to fall on the photosensitive device. In auto-exposure modes (<code class="idl"><a data-link-type="idl" href="#dom-meteringmode-single-shot" id="ref-for-dom-meteringmode-single-shot①">single-shot</a></code> or <code class="idl"><a data-link-type="idl" href="#dom-meteringmode-continuous" id="ref-for-dom-meteringmode-continuous①">continuous</a></code> <code class="idl"><a data-link-type="idl" href="#dom-mediatracksettings-exposuremode" id="ref-for-dom-mediatracksettings-exposuremode③">exposureMode</a></code>), the exposure time and/or camera aperture are automatically adjusted by the implementation based on the subject of the photo. In <code class="idl"><a data-link-type="idl" href="#dom-meteringmode-manual" id="ref-for-dom-meteringmode-manual②">manual</a></code> <code class="idl"><a data-link-type="idl" href="#dom-mediatracksettings-exposuremode" id="ref-for-dom-mediatracksettings-exposuremode④">exposureMode</a></code>, these parameters are set to fixed absolute values.
    <li><dfn class="dfn-paneled" data-dfn-type="dfn" data-noexport id="focus-mode">Focus mode</dfn> describes the focus setting of the capture device (e.g. <var>auto</var> or <var>manual</var>). 
    <li>
     <dfn class="dfn-paneled" data-dfn-type="dfn" data-noexport id="points-of-interest">Points of interest</dfn> describe the metering area centers used in other settings, e.g. <a data-link-type="dfn" href="#exposure" id="ref-for-exposure④">exposure</a>, <a data-link-type="dfn" href="#white-balance-mode" id="ref-for-white-balance-mode④">white balance mode</a> and <a data-link-type="dfn" href="#focus-mode" id="ref-for-focus-mode④">focus mode</a> each one being a <code class="idl"><a data-link-type="idl" href="#dictdef-point2d" id="ref-for-dictdef-point2d⑧">Point2D</a></code> (usually these three controls are modified simultaneously by the so-called <code>3A</code> algorithm: auto-focus, auto-exposure, auto-white-balance). 
     <p>A <code class="idl"><a data-link-type="idl" href="#dictdef-point2d" id="ref-for-dictdef-point2d⑨">Point2D</a></code> Point of Interest is interpreted to represent a pixel position in a normalized square space (|{x,y} ∈ [0.0, 1.0]|). The origin of coordinates |{x,y} = {0.0, 0.0}| represents the upper leftmost corner whereas the |{x,y} = {1.0, 1.0}| represents the lower rightmost corner: the <a href="#dom-point2d-x" id="ref-for-dom-point2d-x"><code>x</code></a> coordinate (columns) increases rightwards and the <a href="#dom-point2d-y" id="ref-for-dom-point2d-y"><code>y</code></a> coordinate (rows) increases downwards. Values beyond the mentioned limits will be clamped to the closest allowed value.</p>
    <p></p>
    <li><i><dfn class="dfn-paneled" data-dfn-type="dfn" data-noexport id="exposure-compensation">Exposure Compensation</dfn></i> is a numeric camera setting that adjusts the exposure level from the current value used by the implementation.  This value can be used to bias the exposure level enabled by auto-exposure, and usually is a symmetric range around 0 EV (the no-compensation value). This value is only used in <code class="idl"><a data-link-type="idl" href="#dom-meteringmode-single-shot" id="ref-for-dom-meteringmode-single-shot②">single-shot</a></code> and <code class="idl"><a data-link-type="idl" href="#dom-meteringmode-continuous" id="ref-for-dom-meteringmode-continuous②">continuous</a></code> <code class="idl"><a data-link-type="idl" href="#dom-mediatracksettings-exposuremode" id="ref-for-dom-mediatracksettings-exposuremode⑤">exposureMode</a></code>.
    <li><i><dfn class="dfn-paneled" data-dfn-type="dfn" data-noexport id="exposure-time">Exposure Time</dfn></i> is a numeric camera setting that controls the length of time during which light is allowed to fall on the photosensitive device. This value is used in <code class="idl"><a data-link-type="idl" href="#dom-meteringmode-manual" id="ref-for-dom-meteringmode-manual③">manual</a></code> <code class="idl"><a data-link-type="idl" href="#dom-mediatracksettings-exposuremode" id="ref-for-dom-mediatracksettings-exposuremode⑥">exposureMode</a></code> to control exposure. The value is in 100 microsecond units. That is, a value of 1.0 means an exposure time of 1/10000th of a second and a value of 10000.0 means an exposure time of 1 second.
    <li>The <i><dfn class="dfn-paneled" data-dfn-type="dfn" data-noexport id="iso">ISO</dfn></i> setting of a camera describes the sensitivity of the camera to light. It is a numeric value, where the lower the value the greater the sensitivity.  This value should follow the <a data-link-type="biblio" href="#biblio-iso12232">[iso12232]</a> standard.
    <li><dfn class="dfn-paneled" data-dfn-type="dfn" data-noexport id="red-eye-reduction">Red Eye Reduction</dfn> is a feature in cameras that is designed to limit or prevent the appearance of red pupils ("Red Eye") in photography subjects due prolonged exposure to a camera’s flash.
    <li><a data-link-type="biblio" href="#biblio-lighting-vocabulary">[LIGHTING-VOCABULARY]</a> defines <i><dfn class="dfn-paneled" data-dfn-type="dfn" data-noexport id="brightness">brightness</dfn></i> as "the attribute of a visual sensation according to which an area appears to emit more or less light" and in the context of the present API, it refers to the numeric camera setting that adjusts the perceived amount of light emitting from the photo object.  A higher brightness setting increases the intensity of darker areas in a scene while compressing the intensity of brighter parts of the scene.  The range and effect of this setting is implementation dependent but in general it translates into a numerical value that is added to each pixel with saturation.
    <li><i><dfn class="dfn-paneled" data-dfn-type="dfn" data-noexport id="contrast">Contrast</dfn></i> is the numeric camera setting that controls the difference in brightness between light and dark areas in a scene.  A higher contrast setting reflects an expansion in the difference in brightness. The range and effect of this setting is implementation dependent but it can be understood as a transformation of the pixel values so that the luma range in the histogram becomes larger; the transformation is sometimes as simple as a gain factor.
    <li><a data-link-type="biblio" href="#biblio-lighting-vocabulary">[LIGHTING-VOCABULARY]</a> defines <i><dfn class="dfn-paneled" data-dfn-type="dfn" data-noexport id="saturation">saturation</dfn></i> as "the colourfulness of an area judged in proportion to its brightness" and in the current context it refers to a numeric camera setting that controls the intensity of color in a scene (i.e. the amount of gray in the scene). Very low saturation levels will result in photos closer to black-and-white. Saturation is similar to <a data-link-type="dfn" href="#contrast" id="ref-for-contrast④">contrast</a> but referring to colors, so its implementation, albeit being platform dependent, can be understood as a gain factor applied to the chroma components of a given image.
    <li>
     <i><dfn class="dfn-paneled" data-dfn-type="dfn" data-noexport id="sharpness">Sharpness</dfn></i> is a numeric camera setting that controls the intensity of edges in a scene.  Higher sharpness settings result in higher contrast along the edges, while lower settings result in less contrast and blurrier edges (i.e. soft focus). The implementation is platform dependent, but it can be understood as the linear combination of an edge detection operation applied on the original image and the original image itself; the relative weights being cotrolled by this <var>sharpness</var>. 
     <div class="note" role="note"> <a data-link-type="dfn" href="#brightness" id="ref-for-brightness④">Brightness</a>, <a data-link-type="dfn" href="#contrast" id="ref-for-contrast⑤">contrast</a>, <a data-link-type="dfn" href="#saturation" id="ref-for-saturation④">saturation</a> and <a data-link-type="dfn" href="#sharpness" id="ref-for-sharpness④">sharpness</a> are specified in <a data-link-type="biblio" href="#biblio-uvc">[UVC]</a>. </div>
    <li>
     <dfn class="dfn-paneled" data-dfn-type="dfn" data-noexport id="image-width">Image width</dfn> and <dfn class="dfn-paneled" data-dfn-type="dfn" data-noexport id="image-height">image height</dfn> represent the supported/desired resolution of the resulting photographic image after any potential sensor corrections and other algorithms are run. 
     <div class="note" role="note"> The supported resolutions are managed segregated e.g. <code class="idl"><a data-link-type="idl" href="#dom-photocapabilities-imagewidth" id="ref-for-dom-photocapabilities-imagewidth②">imageWidth</a></code> and <code class="idl"><a data-link-type="idl" href="#dom-photocapabilities-imageheight" id="ref-for-dom-photocapabilities-imageheight②">imageHeight</a></code> values/ranges to prevent increasing the fingerprinting surface and to allow the UA to make a best-effort decision with regards to actual hardware configuration vis-a-vis requested constraints. </div>
    <li><dfn class="dfn-paneled" data-dfn-type="dfn" data-noexport id="focus-distance">Focus distance</dfn> is a numeric camera setting that controls the focus distance of the lens.  The setting usually represents distance in meters to the optimal focus distance.
    <li><dfn class="dfn-paneled" data-dfn-type="dfn" data-noexport id="pan">Pan</dfn> is a numeric camera setting that controls the pan of the camera.  The setting represents pan in arc seconds, which are 1/3600th of a degree.  Values are in the range from –180*3600 arc seconds to +180*3600 arc seconds.  Positive values pan the camera clockwise as viewed from above, and negative values pan the camera counter clockwise as viewed from above.
    <li>
     <dfn class="dfn-paneled" data-dfn-type="dfn" data-noexport id="tilt">Tilt</dfn> is a numeric camera setting that controls the tilt of the camera.  The setting represents tilt in arc seconds, which are 1/3600th of a degree.  Values are in the range from –180*3600 arc seconds to +180*3600 arc seconds.  Positive values tilt the camera upward when viewed from the front, and negative values tilt the camera downward as viewed from the front. 
     <div class="note" role="note"> There is no defined order when applying <a data-link-type="dfn" href="#pan" id="ref-for-pan④">pan</a> and <a data-link-type="dfn" href="#tilt" id="ref-for-tilt④">tilt</a>, the UA is allowed to apply them in any order.  In practice this should not matter since these values are absolute, so order will not affect the final position.  However, if applying pan and tilt is slow enough, the order in which they are applied may be visually noticeable. </div>
    <li><dfn class="dfn-paneled" data-dfn-type="dfn" data-noexport id="zoom">Zoom</dfn> is a numeric camera setting that controls the focal length of the lens.  The setting usually represents a ratio, e.g. 4 is a zoom ratio of 4:1.  The minimum value is usually 1, to represent a 1:1 ratio (i.e. no zoom).
    <li><dfn class="dfn-paneled" data-dfn-type="dfn" data-noexport id="fill-light-mode">Fill light mode</dfn> describes the flash setting of the capture device (e.g. <var>auto</var>, <var>off</var>, <var>on</var>). <dfn class="dfn-paneled" data-dfn-type="dfn" data-noexport id="torch">Torch</dfn> describes the setting of the source’s fill light as  continuously connected, staying on as long as <code class="idl"><a data-link-type="idl" href="#dom-imagecapture-track" id="ref-for-dom-imagecapture-track①⑤">track</a></code> is active.
   </ol>
   <h2 class="heading settled" data-level="11" id="meteringmode-section"><span class="secno">11. </span><span class="content"><code class="idl"><a data-link-type="idl" href="#enumdef-meteringmode" id="ref-for-enumdef-meteringmode⑨">MeteringMode</a></code></span><a class="self-link" href="#meteringmode-section"></a></h2>
<pre class="idl highlight def"><c- b>enum</c-> <dfn class="dfn-paneled idl-code" data-dfn-type="enum" data-export id="enumdef-meteringmode"><code><c- g>MeteringMode</c-></code></dfn> {
  <a class="idl-code" data-link-type="enum-value" href="#dom-meteringmode-none" id="ref-for-dom-meteringmode-none"><c- s>"none"</c-></a>,
  <a class="idl-code" data-link-type="enum-value" href="#dom-meteringmode-manual" id="ref-for-dom-meteringmode-manual④"><c- s>"manual"</c-></a>,
  <a class="idl-code" data-link-type="enum-value" href="#dom-meteringmode-single-shot" id="ref-for-dom-meteringmode-single-shot③"><c- s>"single-shot"</c-></a>,
  <a class="idl-code" data-link-type="enum-value" href="#dom-meteringmode-continuous" id="ref-for-dom-meteringmode-continuous③"><c- s>"continuous"</c-></a>
};
</pre>
   <h3 class="heading settled" data-level="11.1" id="meteringmode-values"><span class="secno">11.1. </span><span class="content">Values</span><a class="self-link" href="#meteringmode-values"></a></h3>
   <dl class="domintro">
    <dt><dfn class="dfn-paneled idl-code" data-dfn-for="MeteringMode" data-dfn-type="enum-value" data-export data-lt="&quot;none&quot;|none" id="dom-meteringmode-none"><code>none</code></dfn>
    <dd>This source does not offer focus/exposure/white balance mode.  For setting, this is interpreted as a command to turn off the feature.
    <dt><dfn class="dfn-paneled idl-code" data-dfn-for="MeteringMode" data-dfn-type="enum-value" data-export data-lt="&quot;manual&quot;|manual" id="dom-meteringmode-manual"><code>manual</code></dfn>
    <dd>The capture device is set to manually control the lens position/exposure time/white balance, or such a mode is requested to be configured.
    <dt><dfn class="dfn-paneled idl-code" data-dfn-for="MeteringMode" data-dfn-type="enum-value" data-export data-lt="&quot;single-shot&quot;|single-shot" id="dom-meteringmode-single-shot"><code>single-shot</code></dfn>
    <dd>The capture device is configured for single-sweep autofocus/one-shot exposure/white balance calculation, or such a mode is requested.
    <dt><dfn class="dfn-paneled idl-code" data-dfn-for="MeteringMode" data-dfn-type="enum-value" data-export data-lt="&quot;continuous&quot;|continuous" id="dom-meteringmode-continuous"><code>continuous</code></dfn>
    <dd>The capture device is configured for continuous focusing for near-zero shutter-lag/continuous auto exposure/white balance calculation, or such continuous focus hunting/exposure/white balance calculation mode is requested.
   </dl>
   <h2 class="heading settled" data-level="12" id="point2d-section"><span class="secno">12. </span><span class="content"><code class="idl"><a data-link-type="idl" href="#dictdef-point2d" id="ref-for-dictdef-point2d①⓪">Point2D</a></code></span><a class="self-link" href="#point2d-section"></a></h2>
   <p>A <code class="idl"><a data-link-type="idl" href="#dictdef-point2d" id="ref-for-dictdef-point2d①①">Point2D</a></code> represents a location in a two dimensional space. The origin of coordinates is situated in the upper leftmost corner of the space.</p>
<pre class="idl highlight def"><c- b>dictionary</c-> <dfn class="dfn-paneled idl-code" data-dfn-type="dictionary" data-export id="dictdef-point2d"><code><c- g>Point2D</c-></code></dfn> {
  <a class="idl-code" data-link-type="interface" href="https://heycam.github.io/webidl/#idl-double" id="ref-for-idl-double③④"><c- b>double</c-></a> <a class="idl-code" data-default="0.0" data-link-type="dict-member" data-type="double " href="#dom-point2d-x" id="ref-for-dom-point2d-x②"><c- g>x</c-></a> = 0.0;
  <a class="idl-code" data-link-type="interface" href="https://heycam.github.io/webidl/#idl-double" id="ref-for-idl-double③⑤"><c- b>double</c-></a> <a class="idl-code" data-default="0.0" data-link-type="dict-member" data-type="double " href="#dom-point2d-y" id="ref-for-dom-point2d-y②"><c- g>y</c-></a> = 0.0;
};
</pre>
   <h3 class="heading settled" data-level="12.1" id="point2d-members"><span class="secno">12.1. </span><span class="content">Members</span><a class="self-link" href="#point2d-members"></a></h3>
   <dl class="domintro">
    <dt><dfn class="dfn-paneled idl-code" data-dfn-for="Point2D" data-dfn-type="dict-member" data-export id="dom-point2d-x"><code>x</code></dfn>, <span> of type <a data-link-type="idl-name" href="https://heycam.github.io/webidl/#idl-double" id="ref-for-idl-double③⑥">double</a>, defaulting to <code>0.0</code></span>
    <dd>Value of the horizontal (abscissa) coordinate.
    <dt><dfn class="dfn-paneled idl-code" data-dfn-for="Point2D" data-dfn-type="dict-member" data-export id="dom-point2d-y"><code>y</code></dfn>, <span> of type <a data-link-type="idl-name" href="https://heycam.github.io/webidl/#idl-double" id="ref-for-idl-double③⑦">double</a>, defaulting to <code>0.0</code></span>
    <dd>Value of the vertical (ordinate) coordinate.
   </dl>
   <h2 class="heading settled" data-level="13" id="examples"><span class="secno">13. </span><span class="content">Examples</span><a class="self-link" href="#examples"></a></h2>
   <div class="note" role="note"> Slightly modified versions of these examples can be found in e.g. <a href="https://codepen.io/collection/nLeobQ/">this codepen collection</a>. </div>
   <h3 class="heading settled" data-level="13.1" id="example1"><span class="secno">13.1. </span><span class="content">Update camera zoom and <code class="idl"><a data-link-type="idl" href="#dom-imagecapture-takephoto" id="ref-for-dom-imagecapture-takephoto①⓪">takePhoto()</a></code></span><a class="self-link" href="#example1"></a></h3>
   <div class="note" role="note"> The following example can also be found in e.g. <a href="https://codepen.io/miguelao/pen/BLPzKx/left?editors=1010">this codepen</a> with minimal modifications. </div>
   <div class="example" id="example-f5b0156b">
    <a class="self-link" href="#example-f5b0156b"></a> 
<pre class="highlight"><c- o>&lt;</c->html<c- o>></c->
<c- o>&lt;</c->body<c- o>></c->
<c- o>&lt;</c->video autoplay<c- o>>&lt;</c->/video>
<c- o>&lt;</c->img<c- o>></c->
<c- o>&lt;</c->input type<c- o>=</c-><c- u>"range"</c-> hidden<c- o>></c->
<c- o>&lt;</c->script<c- o>></c->
  <c- a>var</c-> imageCapture<c- p>;</c->

  navigator<c- p>.</c->mediaDevices<c- p>.</c->getUserMedia<c- p>({</c->video<c- o>:</c-> <c- kc>true</c-><c- p>})</c->
    <c- p>.</c->then<c- p>(</c->gotMedia<c- p>)</c->
    <c- p>.</c-><c- k>catch</c-><c- p>(</c->err <c- p>=></c-> console<c- p>.</c->error<c- p>(</c-><c- t>'getUserMedia() failed: '</c-><c- p>,</c-> err<c- p>));</c->

  <c- a>function</c-> gotMedia<c- p>(</c->mediastream<c- p>)</c-> <c- p>{</c->
    <c- kr>const</c-> video <c- o>=</c-> document<c- p>.</c->querySelector<c- p>(</c-><c- t>'video'</c-><c- p>);</c->
    video<c- p>.</c->srcObject <c- o>=</c-> mediastream<c- p>;</c->

    <c- kr>const</c-> track <c- o>=</c-> mediastream<c- p>.</c->getVideoTracks<c- p>()[</c-><c- mi>0</c-><c- p>];</c->
    imageCapture <c- o>=</c-> <c- k>new</c-> ImageCapture<c- p>(</c->track<c- p>);</c->

    <c- kr>const</c-> capabilities <c- o>=</c-> track<c- p>.</c->getCapabilities<c- p>()</c->
    <c- c1>// Check whether zoom is supported or not.</c->
    <c- k>if</c-> <c- p>(</c-><c- o>!</c->capabilities<c- p>.</c->zoom<c- p>)</c-> <c- p>{</c->
      <c- k>return</c-><c- p>;</c->
    <c- p>}</c->

    <c- c1>// Map zoom to a slider element.</c->
    <c- kr>const</c-> input <c- o>=</c-> document<c- p>.</c->querySelector<c- p>(</c-><c- t>'input[type="range"]'</c-><c- p>);</c->
    input<c- p>.</c->min <c- o>=</c-> capabilities<c- p>.</c->zoom<c- p>.</c->min<c- p>;</c->
    input<c- p>.</c->max <c- o>=</c-> capabilities<c- p>.</c->zoom<c- p>.</c->max<c- p>;</c->
    input<c- p>.</c->step <c- o>=</c-> capabilities<c- p>.</c->zoom<c- p>.</c->step<c- p>;</c->
    input<c- p>.</c->value <c- o>=</c-> track<c- p>.</c->getSettings<c- p>().</c->zoom<c- p>;</c->

    input<c- p>.</c->oninput <c- o>=</c-> <c- a>function</c-><c- p>(</c->event<c- p>)</c-> <c- p>{</c->
      track<c- p>.</c->applyConstraints<c- p>({</c->advanced <c- o>:</c-> <c- p>[{</c->zoom<c- o>:</c-> event<c- p>.</c->target<c- p>.</c->value<c- p>}]</c-> <c- p>});</c->
    <c- p>}</c->
    input<c- p>.</c->hidden <c- o>=</c-> <c- kc>false</c-><c- p>;</c->
  <c- p>}</c->

  <c- a>function</c-> takePhoto<c- p>()</c-> <c- p>{</c->
    imageCapture<c- p>.</c->takePhoto<c- p>()</c->
      <c- p>.</c->then<c- p>(</c->blob <c- p>=></c-> <c- p>{</c->
        console<c- p>.</c->log<c- p>(</c-><c- t>'Photo taken: '</c-> <c- o>+</c-> blob<c- p>.</c->type <c- o>+</c-> <c- t>', '</c-> <c- o>+</c-> blob<c- p>.</c->size <c- o>+</c-> <c- t>'B'</c-><c- p>);</c->

        <c- kr>const</c-> image <c- o>=</c-> document<c- p>.</c->querySelector<c- p>(</c-><c- t>'img'</c-><c- p>);</c->
        image<c- p>.</c->src <c- o>=</c-> URL<c- p>.</c->createObjectURL<c- p>(</c->blob<c- p>);</c->
      <c- p>})</c->
      <c- p>.</c-><c- k>catch</c-><c- p>(</c->err <c- p>=></c-> console<c- p>.</c->error<c- p>(</c-><c- t>'takePhoto() failed: '</c-><c- p>,</c-> err<c- p>));</c->
  <c- p>}</c->
<c- o>&lt;</c->/script>
<c- o>&lt;</c->/body>
<c- o>&lt;</c->/html>
</pre>
   </div>
   <h3 class="heading settled" data-level="13.2" id="example2"><span class="secno">13.2. </span><span class="content">Repeated grabbing of a frame with <code class="idl"><a data-link-type="idl" href="#dom-imagecapture-grabframe" id="ref-for-dom-imagecapture-grabframe⑥">grabFrame()</a></code></span><a class="self-link" href="#example2"></a></h3>
   <div class="note" role="note"> The following example can also be found in e.g. <a href="https://codepen.io/miguelao/pen/wzxxwp/left?editors=1010">this codepen</a> with minimal modifications. </div>
   <div class="example" id="example-edddde7a">
    <a class="self-link" href="#example-edddde7a"></a> 
<pre class="highlight"><c- o>&lt;</c->html<c- o>></c->
<c- o>&lt;</c->body<c- o>></c->
<c- o>&lt;</c->canvas<c- o>>&lt;</c->/canvas>
<c- o>&lt;</c->button onclick<c- o>=</c-><c- u>"stopGrabFrame()"</c-><c- o>></c->Stop frame grab<c- o>&lt;</c->/button>
<c- o>&lt;</c->script<c- o>></c->
  <c- kr>const</c-> canvas <c- o>=</c-> document<c- p>.</c->querySelector<c- p>(</c-><c- t>'canvas'</c-><c- p>);</c->

  <c- a>var</c-> interval<c- p>;</c->
  <c- a>var</c-> track<c- p>;</c->

  navigator<c- p>.</c->mediaDevices<c- p>.</c->getUserMedia<c- p>({</c->video<c- o>:</c-> <c- kc>true</c-><c- p>})</c->
    <c- p>.</c->then<c- p>(</c->gotMedia<c- p>)</c->
    <c- p>.</c-><c- k>catch</c-><c- p>(</c->err <c- p>=></c-> console<c- p>.</c->error<c- p>(</c-><c- t>'getUserMedia() failed: '</c-><c- p>,</c-> err<c- p>));</c->

  <c- a>function</c-> gotMedia<c- p>(</c->mediastream<c- p>)</c-> <c- p>{</c->
    track <c- o>=</c-> mediastream<c- p>.</c->getVideoTracks<c- p>()[</c-><c- mi>0</c-><c- p>];</c->
    <c- a>var</c-> imageCapture <c- o>=</c-> <c- k>new</c-> ImageCapture<c- p>(</c->track<c- p>);</c->
    interval <c- o>=</c-> setInterval<c- p>(</c-><c- a>function</c-> <c- p>()</c-> <c- p>{</c->
      imageCapture<c- p>.</c->grabFrame<c- p>()</c->
        <c- p>.</c->then<c- p>(</c->processFrame<c- p>)</c->
        <c- p>.</c-><c- k>catch</c-><c- p>(</c->err <c- p>=></c-> console<c- p>.</c->error<c- p>(</c-><c- t>'grabFrame() failed: '</c-><c- p>,</c-> err<c- p>));</c->
    <c- p>},</c-> <c- mi>1000</c-><c- p>);</c->
  <c- p>}</c->

  <c- a>function</c-> processFrame<c- p>(</c->imgData<c- p>)</c-> <c- p>{</c->
    canvas<c- p>.</c->width <c- o>=</c-> imgData<c- p>.</c->width<c- p>;</c->
    canvas<c- p>.</c->height <c- o>=</c-> imgData<c- p>.</c->height<c- p>;</c->
    canvas<c- p>.</c->getContext<c- p>(</c-><c- t>'2d'</c-><c- p>).</c->drawImage<c- p>(</c->imgData<c- p>,</c-> <c- mi>0</c-><c- p>,</c-> <c- mi>0</c-><c- p>);</c->
  <c- p>}</c->

  <c- a>function</c-> stopGrabFrame<c- p>(</c->e<c- p>)</c-> <c- p>{</c->
    clearInterval<c- p>(</c->interval<c- p>);</c->
    track<c- p>.</c->stop<c- p>();</c->
  <c- p>}</c->
<c- o>&lt;</c->/script>
<c- o>&lt;</c->/body>
<c- o>&lt;</c->/html>
</pre>
   </div>
   <h3 class="heading settled" data-level="13.3" id="example3"><span class="secno">13.3. </span><span class="content">Grabbing a Frame and Post-Processing</span><a class="self-link" href="#example3"></a></h3>
   <div class="note" role="note"> The following example can also be found in e.g. <a href="https://codepen.io/miguelao/pen/mAzXpN/left?editors=1010">this codepen</a> with minimal modifications. </div>
   <div class="example" id="example-678fc1a9">
    <a class="self-link" href="#example-678fc1a9"></a> 
<pre class="highlight"><c- o>&lt;</c->html<c- o>></c->
<c- o>&lt;</c->body<c- o>></c->
<c- o>&lt;</c->canvas<c- o>>&lt;</c->/canvas>
<c- o>&lt;</c->script<c- o>></c->
  <c- kr>const</c-> canvas <c- o>=</c-> document<c- p>.</c->querySelector<c- p>(</c-><c- t>'canvas'</c-><c- p>);</c->

  <c- a>var</c-> track<c- p>;</c->

  navigator<c- p>.</c->mediaDevices<c- p>.</c->getUserMedia<c- p>({</c->video<c- o>:</c-> <c- kc>true</c-><c- p>})</c->
    <c- p>.</c->then<c- p>(</c->gotMedia<c- p>)</c->
    <c- p>.</c-><c- k>catch</c-><c- p>(</c->err <c- p>=></c-> console<c- p>.</c->error<c- p>(</c-><c- t>'getUserMedia() failed: '</c-><c- p>,</c-> err<c- p>));</c->

  <c- a>function</c-> gotMedia<c- p>(</c->mediastream<c- p>)</c-> <c- p>{</c->
    track <c- o>=</c-> mediastream<c- p>.</c->getVideoTracks<c- p>()[</c-><c- mi>0</c-><c- p>];</c->
    <c- a>var</c-> imageCapture <c- o>=</c-> <c- k>new</c-> ImageCapture<c- p>(</c->track<c- p>);</c->
    imageCapture<c- p>.</c->grabFrame<c- p>()</c->
      <c- p>.</c->then<c- p>(</c->processFrame<c- p>)</c->
      <c- p>.</c-><c- k>catch</c-><c- p>(</c->err <c- p>=></c-> console<c- p>.</c->error<c- p>(</c-><c- t>'grabFrame() failed: '</c-><c- p>,</c-> err<c- p>));</c->
  <c- p>}</c->

  <c- a>function</c-> processFrame<c- p>(</c->imageBitmap<c- p>)</c-> <c- p>{</c->
    track<c- p>.</c->stop<c- p>();</c->

    <c- c1>// |imageBitmap| pixels are not directly accessible: we need to paint</c->
    <c- c1>// the grabbed frame onto a &lt;canvas>, then getImageData() from it.</c->
    <c- kr>const</c-> ctx <c- o>=</c-> canvas<c- p>.</c->getContext<c- p>(</c-><c- t>'2d'</c-><c- p>);</c->
    canvas<c- p>.</c->width <c- o>=</c-> imageBitmap<c- p>.</c->width<c- p>;</c->
    canvas<c- p>.</c->height <c- o>=</c-> imageBitmap<c- p>.</c->height<c- p>;</c->
    ctx<c- p>.</c->drawImage<c- p>(</c->imageBitmap<c- p>,</c-> <c- mi>0</c-><c- p>,</c-> <c- mi>0</c-><c- p>);</c->

    <c- c1>// Read back the pixels from the &lt;canvas>, and invert the colors.</c->
    <c- kr>const</c-> imageData <c- o>=</c-> ctx<c- p>.</c->getImageData<c- p>(</c-><c- mi>0</c-><c- p>,</c-> <c- mi>0</c-><c- p>,</c-> canvas<c- p>.</c->width<c- p>,</c-> canvas<c- p>.</c->height<c- p>);</c->

    <c- a>var</c-> data <c- o>=</c-> imageData<c- p>.</c->data<c- p>;</c->
    <c- k>for</c-> <c- p>(</c-><c- a>var</c-> i <c- o>=</c-> <c- mi>0</c-><c- p>;</c-> i <c- o>&lt;</c-> data<c- p>.</c->length<c- p>;</c-> i <c- o>+=</c-> <c- mi>4</c-><c- p>)</c-> <c- p>{</c->
      data<c- p>[</c->i<c- p>]</c->     <c- o>=</c-> <c- mi>255</c-> <c- o>-</c-> data<c- p>[</c->i<c- p>];</c->     <c- c1>// red</c->
      data<c- p>[</c->i <c- o>+</c-> <c- mi>1</c-><c- p>]</c-> <c- o>=</c-> <c- mi>255</c-> <c- o>-</c-> data<c- p>[</c->i <c- o>+</c-> <c- mi>1</c-><c- p>];</c-> <c- c1>// green</c->
      data<c- p>[</c->i <c- o>+</c-> <c- mi>2</c-><c- p>]</c-> <c- o>=</c-> <c- mi>255</c-> <c- o>-</c-> data<c- p>[</c->i <c- o>+</c-> <c- mi>2</c-><c- p>];</c-> <c- c1>// blue</c->
    <c- p>}</c->
    <c- c1>// Finally, draw the inverted image to the &lt;canvas></c->
    ctx<c- p>.</c->putImageData<c- p>(</c->imageData<c- p>,</c-> <c- mi>0</c-><c- p>,</c-> <c- mi>0</c-><c- p>);</c->
  <c- p>}</c->
<c- o>&lt;</c->/script>
<c- o>&lt;</c->/body>
<c- o>&lt;</c->/html>
</pre>
   </div>
   <h3 class="heading settled" data-level="13.4" id="example4"><span class="secno">13.4. </span><span class="content">Update camera focus distance and <code class="idl"><a data-link-type="idl" href="#dom-imagecapture-takephoto" id="ref-for-dom-imagecapture-takephoto①①">takePhoto()</a></code></span><a class="self-link" href="#example4"></a></h3>
   <div class="example" id="example-16954f82">
    <a class="self-link" href="#example-16954f82"></a> 
<pre class="highlight"><c- o>&lt;</c->html<c- o>></c->
<c- o>&lt;</c->body<c- o>></c->
<c- o>&lt;</c->video autoplay<c- o>>&lt;</c->/video>
<c- o>&lt;</c->img<c- o>></c->
<c- o>&lt;</c->input type<c- o>=</c-><c- u>"range"</c-> hidden<c- o>></c->
<c- o>&lt;</c->script<c- o>></c->
  <c- a>var</c-> imageCapture<c- p>;</c->

  navigator<c- p>.</c->mediaDevices<c- p>.</c->getUserMedia<c- p>({</c->video<c- o>:</c-> <c- kc>true</c-><c- p>})</c->
    <c- p>.</c->then<c- p>(</c->gotMedia<c- p>)</c->
    <c- p>.</c-><c- k>catch</c-><c- p>(</c->err <c- p>=></c-> console<c- p>.</c->error<c- p>(</c-><c- t>'getUserMedia() failed: '</c-><c- p>,</c-> err<c- p>));</c->

  <c- a>function</c-> gotMedia<c- p>(</c->mediastream<c- p>)</c-> <c- p>{</c->
    <c- kr>const</c-> video <c- o>=</c-> document<c- p>.</c->querySelector<c- p>(</c-><c- t>'video'</c-><c- p>);</c->
    video<c- p>.</c->srcObject <c- o>=</c-> mediastream<c- p>;</c->

    <c- kr>const</c-> track <c- o>=</c-> mediastream<c- p>.</c->getVideoTracks<c- p>()[</c-><c- mi>0</c-><c- p>];</c->
    imageCapture <c- o>=</c-> <c- k>new</c-> ImageCapture<c- p>(</c->track<c- p>);</c->

    <c- kr>const</c-> capabilities <c- o>=</c-> track<c- p>.</c->getCapabilities<c- p>()</c->
    <c- c1>// Check whether focus distance is supported or not.</c->
    <c- k>if</c-> <c- p>(</c-><c- o>!</c->capabilities<c- p>.</c->focusDistance<c- p>)</c-> <c- p>{</c->
      <c- k>return</c-><c- p>;</c->
    <c- p>}</c->

    <c- c1>// Map focus distance to a slider element.</c->
    <c- kr>const</c-> input <c- o>=</c-> document<c- p>.</c->querySelector<c- p>(</c-><c- t>'input[type="range"]'</c-><c- p>);</c->
    input<c- p>.</c->min <c- o>=</c-> capabilities<c- p>.</c->focusDistance<c- p>.</c->min<c- p>;</c->
    input<c- p>.</c->max <c- o>=</c-> capabilities<c- p>.</c->focusDistance<c- p>.</c->max<c- p>;</c->
    input<c- p>.</c->step <c- o>=</c-> capabilities<c- p>.</c->focusDistance<c- p>.</c->step<c- p>;</c->
    input<c- p>.</c->value <c- o>=</c-> track<c- p>.</c->getSettings<c- p>().</c->focusDistance<c- p>;</c->

    input<c- p>.</c->oninput <c- o>=</c-> <c- a>function</c-><c- p>(</c->event<c- p>)</c-> <c- p>{</c->
      track<c- p>.</c->applyConstraints<c- p>({</c->
        advanced <c- o>:</c-> <c- p>[{</c->focusMode<c- o>:</c-> <c- u>"manual"</c-><c- p>,</c-> focusDistance<c- o>:</c-> event<c- p>.</c->target<c- p>.</c->value<c- p>}]</c->
      <c- p>});</c->
    <c- p>}</c->
    input<c- p>.</c->hidden <c- o>=</c-> <c- kc>false</c-><c- p>;</c->
  <c- p>}</c->

  <c- a>function</c-> takePhoto<c- p>()</c-> <c- p>{</c->
    imageCapture<c- p>.</c->takePhoto<c- p>()</c->
      <c- p>.</c->then<c- p>(</c->blob <c- p>=></c-> <c- p>{</c->
        console<c- p>.</c->log<c- p>(</c-><c- t>'Photo taken: '</c-> <c- o>+</c-> blob<c- p>.</c->type <c- o>+</c-> <c- t>', '</c-> <c- o>+</c-> blob<c- p>.</c->size <c- o>+</c-> <c- t>'B'</c-><c- p>);</c->

        <c- kr>const</c-> image <c- o>=</c-> document<c- p>.</c->querySelector<c- p>(</c-><c- t>'img'</c-><c- p>);</c->
        image<c- p>.</c->src <c- o>=</c-> URL<c- p>.</c->createObjectURL<c- p>(</c->blob<c- p>);</c->
      <c- p>})</c->
      <c- p>.</c-><c- k>catch</c-><c- p>(</c->err <c- p>=></c-> console<c- p>.</c->error<c- p>(</c-><c- t>'takePhoto() failed: '</c-><c- p>,</c-> err<c- p>));</c->
  <c- p>}</c->
<c- o>&lt;</c->/script>
<c- o>&lt;</c->/body>
<c- o>&lt;</c->/html>
</pre>
   </div>
  </main>
  <div data-fill-with="conformance">
   <h2 class="no-ref no-num heading settled" id="conformance"><span class="content">Conformance</span><a class="self-link" href="#conformance"></a></h2>
   <h3 class="no-ref no-num heading settled" id="conventions"><span class="content">Document conventions</span><a class="self-link" href="#conventions"></a></h3>
   <p>Conformance requirements are expressed with a combination of
    descriptive assertions and RFC 2119 terminology. The key words “MUST”,
    “MUST NOT”, “REQUIRED”, “SHALL”, “SHALL NOT”, “SHOULD”, “SHOULD NOT”,
    “RECOMMENDED”, “MAY”, and “OPTIONAL” in the normative parts of this
    document are to be interpreted as described in RFC 2119.
    However, for readability, these words do not appear in all uppercase
    letters in this specification. </p>
   <p>All of the text of this specification is normative except sections
    explicitly marked as non-normative, examples, and notes. <a data-link-type="biblio" href="#biblio-rfc2119">[RFC2119]</a></p>
   <p>Examples in this specification are introduced with the words “for example”
    or are set apart from the normative text with <code>class="example"</code>,
    like this: </p>
   <div class="example" id="example-ae2b6bc0">
    <a class="self-link" href="#example-ae2b6bc0"></a> 
    <p>This is an example of an informative example.</p>
   </div>
   <p>Informative notes begin with the word “Note” and are set apart from the
    normative text with <code>class="note"</code>, like this: </p>
   <p class="note" role="note">Note, this is an informative note.</p>
   <h3 class="no-ref no-num heading settled" id="conformant-algorithms"><span class="content">Conformant Algorithms</span><a class="self-link" href="#conformant-algorithms"></a></h3>
   <p>Requirements phrased in the imperative as part of algorithms (such as
    "strip any leading space characters" or "return false and abort these
    steps") are to be interpreted with the meaning of the key word ("must",
    "should", "may", etc) used in introducing the algorithm.</p>
   <p>Conformance requirements phrased as algorithms or specific steps can be
    implemented in any manner, so long as the end result is equivalent. In
    particular, the algorithms defined in this specification are intended to
    be easy to understand and are not intended to be performant. Implementers
    are encouraged to optimize.</p>
   <h3 class="no-ref no-num heading settled" id="conformance-classes"><span class="content">Conformance Classes</span><a class="self-link" href="#conformance-classes"></a></h3>
   <p>A <dfn data-dfn-type="dfn" data-noexport id="conformant-user-agent">conformant user agent<a class="self-link" href="#conformant-user-agent"></a></dfn> must implement all the requirements
    listed in this specification that are applicable to user agents.</p>
   <p>A <dfn data-dfn-type="dfn" data-noexport id="conformant-server">conformant server<a class="self-link" href="#conformant-server"></a></dfn> must implement all the requirements listed
    in this specification that are applicable to servers.</p>
  </div>
<script src="https://www.w3.org/scripts/TR/2016/fixup.js"></script>
  <h2 class="no-num no-ref heading settled" id="index"><span class="content">Index</span><a class="self-link" href="#index"></a></h2>
  <h3 class="no-num no-ref heading settled" id="index-defined-here"><span class="content">Terms defined by this specification</span><a class="self-link" href="#index-defined-here"></a></h3>
  <ul class="index">
   <li><a href="#dom-redeyereduction-always">always</a><span>, in §7.1</span>
   <li><a href="#dom-redeyereduction-always">"always"</a><span>, in §7.1</span>
   <li><a href="#dom-filllightmode-auto">auto</a><span>, in §8.1</span>
   <li><a href="#dom-filllightmode-auto">"auto"</a><span>, in §8.1</span>
   <li>
    brightness
    <ul>
     <li><a href="#brightness">definition of</a><span>, in §10</span>
     <li><a href="#dom-mediatrackcapabilities-brightness">dict-member for MediaTrackCapabilities</a><span>, in §9.2.1</span>
     <li><a href="#dom-mediatrackconstraintset-brightness">dict-member for MediaTrackConstraintSet</a><span>, in §9.3.1</span>
     <li><a href="#dom-mediatracksettings-brightness">dict-member for MediaTrackSettings</a><span>, in §9.4.1</span>
     <li><a href="#dom-mediatracksupportedconstraints-brightness">dict-member for MediaTrackSupportedConstraints</a><span>, in §9.1.1</span>
    </ul>
   <li>
    colorTemperature
    <ul>
     <li><a href="#dom-mediatrackcapabilities-colortemperature">dict-member for MediaTrackCapabilities</a><span>, in §9.2.1</span>
     <li><a href="#dom-mediatrackconstraintset-colortemperature">dict-member for MediaTrackConstraintSet</a><span>, in §9.3.1</span>
     <li><a href="#dom-mediatracksettings-colortemperature">dict-member for MediaTrackSettings</a><span>, in §9.4.1</span>
     <li><a href="#dom-mediatracksupportedconstraints-colortemperature">dict-member for MediaTrackSupportedConstraints</a><span>, in §9.1.1</span>
    </ul>
   <li><a href="#color-temperature">Color temperature</a><span>, in §10</span>
   <li><a href="#conformant-server">conformant server</a><span>, in §Unnumbered section</span>
   <li><a href="#conformant-user-agent">conformant user agent</a><span>, in §Unnumbered section</span>
   <li><a href="#typedefdef-constrainpoint2d">ConstrainPoint2D</a><span>, in §9.5</span>
   <li><a href="#dictdef-constrainpoint2dparameters">ConstrainPoint2DParameters</a><span>, in §9.5</span>
   <li><a href="#dom-imagecapture-imagecapture">constructor(videoTrack)</a><span>, in §3.2</span>
   <li><a href="#dom-meteringmode-continuous">"continuous"</a><span>, in §11.1</span>
   <li><a href="#dom-meteringmode-continuous">continuous</a><span>, in §11.1</span>
   <li>
    contrast
    <ul>
     <li><a href="#dom-mediatrackcapabilities-contrast">dict-member for MediaTrackCapabilities</a><span>, in §9.2.1</span>
     <li><a href="#dom-mediatrackconstraintset-contrast">dict-member for MediaTrackConstraintSet</a><span>, in §9.3.1</span>
     <li><a href="#dom-mediatracksettings-contrast">dict-member for MediaTrackSettings</a><span>, in §9.4.1</span>
     <li><a href="#dom-mediatracksupportedconstraints-contrast">dict-member for MediaTrackSupportedConstraints</a><span>, in §9.1.1</span>
    </ul>
   <li><a href="#contrast">Contrast</a><span>, in §10</span>
   <li><a href="#dom-redeyereduction-controllable">controllable</a><span>, in §7.1</span>
   <li><a href="#dom-redeyereduction-controllable">"controllable"</a><span>, in §7.1</span>
   <li><a href="#dom-constrainpoint2dparameters-exact">exact</a><span>, in §9.5.1</span>
   <li><a href="#exposure">Exposure</a><span>, in §10</span>
   <li>
    exposureCompensation
    <ul>
     <li><a href="#dom-mediatrackcapabilities-exposurecompensation">dict-member for MediaTrackCapabilities</a><span>, in §9.2.1</span>
     <li><a href="#dom-mediatrackconstraintset-exposurecompensation">dict-member for MediaTrackConstraintSet</a><span>, in §9.3.1</span>
     <li><a href="#dom-mediatracksettings-exposurecompensation">dict-member for MediaTrackSettings</a><span>, in §9.4.1</span>
     <li><a href="#dom-mediatracksupportedconstraints-exposurecompensation">dict-member for MediaTrackSupportedConstraints</a><span>, in §9.1.1</span>
    </ul>
   <li><a href="#exposure-compensation">Exposure Compensation</a><span>, in §10</span>
   <li>
    exposureMode
    <ul>
     <li><a href="#dom-mediatrackcapabilities-exposuremode">dict-member for MediaTrackCapabilities</a><span>, in §9.2.1</span>
     <li><a href="#dom-mediatrackconstraintset-exposuremode">dict-member for MediaTrackConstraintSet</a><span>, in §9.3.1</span>
     <li><a href="#dom-mediatracksettings-exposuremode">dict-member for MediaTrackSettings</a><span>, in §9.4.1</span>
     <li><a href="#dom-mediatracksupportedconstraints-exposuremode">dict-member for MediaTrackSupportedConstraints</a><span>, in §9.1.1</span>
    </ul>
   <li><a href="#exposure-time">Exposure Time</a><span>, in §10</span>
   <li>
    exposureTime
    <ul>
     <li><a href="#dom-mediatrackcapabilities-exposuretime">dict-member for MediaTrackCapabilities</a><span>, in §9.2.1</span>
     <li><a href="#dom-mediatrackconstraintset-exposuretime">dict-member for MediaTrackConstraintSet</a><span>, in §9.3.1</span>
     <li><a href="#dom-mediatracksettings-exposuretime">dict-member for MediaTrackSettings</a><span>, in §9.4.1</span>
     <li><a href="#dom-mediatracksupportedconstraints-exposuretime">dict-member for MediaTrackSupportedConstraints</a><span>, in §9.1.1</span>
    </ul>
   <li><a href="#fill-light-mode">Fill light mode</a><span>, in §10</span>
   <li>
    fillLightMode
    <ul>
     <li><a href="#dom-photocapabilities-filllightmode">attribute for PhotoCapabilities</a><span>, in §4.1</span>
     <li><a href="#dom-photosettings-filllightmode">dict-member for PhotoSettings</a><span>, in §5.1</span>
    </ul>
   <li><a href="#enumdef-filllightmode">FillLightMode</a><span>, in §8</span>
   <li><a href="#dom-filllightmode-flash">flash</a><span>, in §8.1</span>
   <li><a href="#dom-filllightmode-flash">"flash"</a><span>, in §8.1</span>
   <li>
    focusDistance
    <ul>
     <li><a href="#dom-mediatrackcapabilities-focusdistance">dict-member for MediaTrackCapabilities</a><span>, in §9.2.1</span>
     <li><a href="#dom-mediatrackconstraintset-focusdistance">dict-member for MediaTrackConstraintSet</a><span>, in §9.3.1</span>
     <li><a href="#dom-mediatracksettings-focusdistance">dict-member for MediaTrackSettings</a><span>, in §9.4.1</span>
     <li><a href="#dom-mediatracksupportedconstraints-focusdistance">dict-member for MediaTrackSupportedConstraints</a><span>, in §9.1.1</span>
    </ul>
   <li><a href="#focus-distance">Focus distance</a><span>, in §10</span>
   <li><a href="#focus-mode">Focus mode</a><span>, in §10</span>
   <li>
    focusMode
    <ul>
     <li><a href="#dom-mediatrackcapabilities-focusmode">dict-member for MediaTrackCapabilities</a><span>, in §9.2.1</span>
     <li><a href="#dom-mediatrackconstraintset-focusmode">dict-member for MediaTrackConstraintSet</a><span>, in §9.3.1</span>
     <li><a href="#dom-mediatracksettings-focusmode">dict-member for MediaTrackSettings</a><span>, in §9.4.1</span>
     <li><a href="#dom-mediatracksupportedconstraints-focusmode">dict-member for MediaTrackSupportedConstraints</a><span>, in §9.1.1</span>
    </ul>
   <li><a href="#dom-imagecapture-getphotocapabilities">getPhotoCapabilities()</a><span>, in §3.2</span>
   <li><a href="#dom-imagecapture-getphotosettings">getPhotoSettings()</a><span>, in §3.2</span>
   <li><a href="#dom-imagecapture-grabframe">grabFrame()</a><span>, in §3.2</span>
   <li><a href="#dom-constrainpoint2dparameters-ideal">ideal</a><span>, in §9.5.1</span>
   <li><a href="#imagecapture">ImageCapture</a><span>, in §3</span>
   <li><a href="#dom-imagecapture-imagecapture">ImageCapture(videoTrack)</a><span>, in §3.2</span>
   <li>
    imageHeight
    <ul>
     <li><a href="#dom-photocapabilities-imageheight">attribute for PhotoCapabilities</a><span>, in §4.1</span>
     <li><a href="#dom-photosettings-imageheight">dict-member for PhotoSettings</a><span>, in §5.1</span>
    </ul>
   <li><a href="#image-height">image height</a><span>, in §10</span>
   <li><a href="#image-width">Image width</a><span>, in §10</span>
   <li>
    imageWidth
    <ul>
     <li><a href="#dom-photocapabilities-imagewidth">attribute for PhotoCapabilities</a><span>, in §4.1</span>
     <li><a href="#dom-photosettings-imagewidth">dict-member for PhotoSettings</a><span>, in §5.1</span>
    </ul>
   <li>
    iso
    <ul>
     <li><a href="#dom-mediatrackcapabilities-iso">dict-member for MediaTrackCapabilities</a><span>, in §9.2.1</span>
     <li><a href="#dom-mediatrackconstraintset-iso">dict-member for MediaTrackConstraintSet</a><span>, in §9.3.1</span>
     <li><a href="#dom-mediatracksettings-iso">dict-member for MediaTrackSettings</a><span>, in §9.4.1</span>
     <li><a href="#dom-mediatracksupportedconstraints-iso">dict-member for MediaTrackSupportedConstraints</a><span>, in §9.1.1</span>
    </ul>
   <li><a href="#iso">ISO</a><span>, in §10</span>
   <li><a href="#dom-meteringmode-manual">"manual"</a><span>, in §11.1</span>
   <li><a href="#dom-meteringmode-manual">manual</a><span>, in §11.1</span>
   <li><a href="#dom-mediasettingsrange-max">max</a><span>, in §6.1</span>
   <li><a href="#mediasettingsrange">MediaSettingsRange</a><span>, in §6</span>
   <li><a href="#enumdef-meteringmode">MeteringMode</a><span>, in §11</span>
   <li><a href="#dom-mediasettingsrange-min">min</a><span>, in §6.1</span>
   <li><a href="#dom-redeyereduction-never">never</a><span>, in §7.1</span>
   <li><a href="#dom-redeyereduction-never">"never"</a><span>, in §7.1</span>
   <li><a href="#dom-meteringmode-none">"none"</a><span>, in §11.1</span>
   <li><a href="#dom-meteringmode-none">none</a><span>, in §11.1</span>
   <li><a href="#dom-filllightmode-off">"off"</a><span>, in §8.1</span>
   <li><a href="#dom-filllightmode-off">off</a><span>, in §8.1</span>
   <li><a href="#pan">Pan</a><span>, in §10</span>
   <li>
    pan
    <ul>
     <li><a href="#dom-mediatrackcapabilities-pan">dict-member for MediaTrackCapabilities</a><span>, in §9.2.1</span>
     <li><a href="#dom-mediatrackconstraintset-pan">dict-member for MediaTrackConstraintSet</a><span>, in §9.3.1</span>
     <li><a href="#dom-mediatracksettings-pan">dict-member for MediaTrackSettings</a><span>, in §9.4.1</span>
     <li><a href="#dom-mediatracksupportedconstraints-pan">dict-member for MediaTrackSupportedConstraints</a><span>, in §9.1.1</span>
    </ul>
   <li><a href="#photocapabilities">PhotoCapabilities</a><span>, in §4</span>
   <li><a href="#dictdef-photosettings">PhotoSettings</a><span>, in §5</span>
   <li><a href="#dictdef-point2d">Point2D</a><span>, in §12</span>
   <li>
    pointsOfInterest
    <ul>
     <li><a href="#dom-mediatrackconstraintset-pointsofinterest">dict-member for MediaTrackConstraintSet</a><span>, in §9.3.1</span>
     <li><a href="#dom-mediatracksettings-pointsofinterest">dict-member for MediaTrackSettings</a><span>, in §9.4.1</span>
     <li><a href="#dom-mediatracksupportedconstraints-pointsofinterest">dict-member for MediaTrackSupportedConstraints</a><span>, in §9.1.1</span>
    </ul>
   <li><a href="#points-of-interest">Points of interest</a><span>, in §10</span>
   <li>
    redEyeReduction
    <ul>
     <li><a href="#dom-photocapabilities-redeyereduction">attribute for PhotoCapabilities</a><span>, in §4.1</span>
     <li><a href="#dom-photosettings-redeyereduction">dict-member for PhotoSettings</a><span>, in §5.1</span>
    </ul>
   <li><a href="#enumdef-redeyereduction">RedEyeReduction</a><span>, in §7</span>
   <li><a href="#red-eye-reduction">Red Eye Reduction</a><span>, in §10</span>
   <li>
    saturation
    <ul>
     <li><a href="#saturation">definition of</a><span>, in §10</span>
     <li><a href="#dom-mediatrackcapabilities-saturation">dict-member for MediaTrackCapabilities</a><span>, in §9.2.1</span>
     <li><a href="#dom-mediatrackconstraintset-saturation">dict-member for MediaTrackConstraintSet</a><span>, in §9.3.1</span>
     <li><a href="#dom-mediatracksettings-saturation">dict-member for MediaTrackSettings</a><span>, in §9.4.1</span>
     <li><a href="#dom-mediatracksupportedconstraints-saturation">dict-member for MediaTrackSupportedConstraints</a><span>, in §9.1.1</span>
    </ul>
   <li><a href="#sharpness">Sharpness</a><span>, in §10</span>
   <li>
    sharpness
    <ul>
     <li><a href="#dom-mediatrackcapabilities-sharpness">dict-member for MediaTrackCapabilities</a><span>, in §9.2.1</span>
     <li><a href="#dom-mediatrackconstraintset-sharpness">dict-member for MediaTrackConstraintSet</a><span>, in §9.3.1</span>
     <li><a href="#dom-mediatracksettings-sharpness">dict-member for MediaTrackSettings</a><span>, in §9.4.1</span>
     <li><a href="#dom-mediatracksupportedconstraints-sharpness">dict-member for MediaTrackSupportedConstraints</a><span>, in §9.1.1</span>
    </ul>
   <li><a href="#dom-meteringmode-single-shot">"single-shot"</a><span>, in §11.1</span>
   <li><a href="#dom-meteringmode-single-shot">single-shot</a><span>, in §11.1</span>
   <li><a href="#dom-mediasettingsrange-step">step</a><span>, in §6.1</span>
   <li><a href="#dom-imagecapture-takephoto">takePhoto()</a><span>, in §3.2</span>
   <li><a href="#dom-imagecapture-takephoto">takePhoto(photoSettings)</a><span>, in §3.2</span>
   <li><a href="#tilt">Tilt</a><span>, in §10</span>
   <li>
    tilt
    <ul>
     <li><a href="#dom-mediatrackcapabilities-tilt">dict-member for MediaTrackCapabilities</a><span>, in §9.2.1</span>
     <li><a href="#dom-mediatrackconstraintset-tilt">dict-member for MediaTrackConstraintSet</a><span>, in §9.3.1</span>
     <li><a href="#dom-mediatracksettings-tilt">dict-member for MediaTrackSettings</a><span>, in §9.4.1</span>
     <li><a href="#dom-mediatracksupportedconstraints-tilt">dict-member for MediaTrackSupportedConstraints</a><span>, in §9.1.1</span>
    </ul>
   <li>
    torch
    <ul>
     <li><a href="#dom-mediatrackcapabilities-torch">dict-member for MediaTrackCapabilities</a><span>, in §9.2.1</span>
     <li><a href="#dom-mediatrackconstraintset-torch">dict-member for MediaTrackConstraintSet</a><span>, in §9.3.1</span>
     <li><a href="#dom-mediatracksettings-torch">dict-member for MediaTrackSettings</a><span>, in §9.4.1</span>
     <li><a href="#dom-mediatracksupportedconstraints-torch">dict-member for MediaTrackSupportedConstraints</a><span>, in §9.1.1</span>
    </ul>
   <li><a href="#torch">Torch</a><span>, in §10</span>
   <li><a href="#dom-imagecapture-track">track</a><span>, in §3.1</span>
   <li><a href="#white-balance-mode">White balance mode</a><span>, in §10</span>
   <li>
    whiteBalanceMode
    <ul>
     <li><a href="#dom-mediatrackcapabilities-whitebalancemode">dict-member for MediaTrackCapabilities</a><span>, in §9.2.1</span>
     <li><a href="#dom-mediatrackconstraintset-whitebalancemode">dict-member for MediaTrackConstraintSet</a><span>, in §9.3.1</span>
     <li><a href="#dom-mediatracksettings-whitebalancemode">dict-member for MediaTrackSettings</a><span>, in §9.4.1</span>
     <li><a href="#dom-mediatracksupportedconstraints-whitebalancemode">dict-member for MediaTrackSupportedConstraints</a><span>, in §9.1.1</span>
    </ul>
   <li><a href="#dom-point2d-x">x</a><span>, in §12.1</span>
   <li><a href="#dom-point2d-y">y</a><span>, in §12.1</span>
   <li>
    zoom
    <ul>
     <li><a href="#dom-mediatrackcapabilities-zoom">dict-member for MediaTrackCapabilities</a><span>, in §9.2.1</span>
     <li><a href="#dom-mediatrackconstraintset-zoom">dict-member for MediaTrackConstraintSet</a><span>, in §9.3.1</span>
     <li><a href="#dom-mediatracksettings-zoom">dict-member for MediaTrackSettings</a><span>, in §9.4.1</span>
     <li><a href="#dom-mediatracksupportedconstraints-zoom">dict-member for MediaTrackSupportedConstraints</a><span>, in §9.1.1</span>
    </ul>
   <li><a href="#zoom">Zoom</a><span>, in §10</span>
  </ul>
  <aside class="dfn-panel" data-for="term-for-dfn-Blob">
   <a href="https://w3c.github.io/FileAPI/#dfn-Blob">https://w3c.github.io/FileAPI/#dfn-Blob</a><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-dfn-Blob">1. Introduction</a>
    <li><a href="#ref-for-dfn-Blob①">3. Image Capture API</a> <a href="#ref-for-dfn-Blob②">(2)</a>
    <li><a href="#ref-for-dfn-Blob③">3.2. Methods</a> <a href="#ref-for-dfn-Blob④">(2)</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="term-for-imagebitmap">
   <a href="https://html.spec.whatwg.org/multipage/imagebitmap-and-animations.html#imagebitmap">https://html.spec.whatwg.org/multipage/imagebitmap-and-animations.html#imagebitmap</a><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-imagebitmap">1. Introduction</a>
    <li><a href="#ref-for-imagebitmap①">3. Image Capture API</a> <a href="#ref-for-imagebitmap②">(2)</a>
    <li><a href="#ref-for-imagebitmap③">3.2. Methods</a> <a href="#ref-for-imagebitmap④">(2)</a> <a href="#ref-for-imagebitmap⑤">(3)</a> <a href="#ref-for-imagebitmap⑥">(4)</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="term-for-a-promise-rejected-with">
   <a href="https://www.w3.org/2001/tag/doc/promises-guide/#a-promise-rejected-with">https://www.w3.org/2001/tag/doc/promises-guide/#a-promise-rejected-with</a><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-a-promise-rejected-with">3.2. Methods</a> <a href="#ref-for-a-promise-rejected-with①">(2)</a> <a href="#ref-for-a-promise-rejected-with②">(3)</a> <a href="#ref-for-a-promise-rejected-with③">(4)</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="term-for-idl-DOMException">
   <a href="https://heycam.github.io/webidl/#idl-DOMException">https://heycam.github.io/webidl/#idl-DOMException</a><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-idl-DOMException">3.2. Methods</a> <a href="#ref-for-idl-DOMException①">(2)</a> <a href="#ref-for-idl-DOMException②">(3)</a> <a href="#ref-for-idl-DOMException③">(4)</a> <a href="#ref-for-idl-DOMException④">(5)</a> <a href="#ref-for-idl-DOMException⑤">(6)</a> <a href="#ref-for-idl-DOMException⑥">(7)</a> <a href="#ref-for-idl-DOMException⑦">(8)</a> <a href="#ref-for-idl-DOMException⑧">(9)</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="term-for-idl-DOMString">
   <a href="https://heycam.github.io/webidl/#idl-DOMString">https://heycam.github.io/webidl/#idl-DOMString</a><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-idl-DOMString">9.2. MediaTrackCapabilities dictionary</a> <a href="#ref-for-idl-DOMString①">(2)</a> <a href="#ref-for-idl-DOMString②">(3)</a>
    <li><a href="#ref-for-idl-DOMString③">9.2.1. Members</a> <a href="#ref-for-idl-DOMString④">(2)</a> <a href="#ref-for-idl-DOMString⑤">(3)</a>
    <li><a href="#ref-for-idl-DOMString⑥">9.4. MediaTrackSettings dictionary</a> <a href="#ref-for-idl-DOMString⑦">(2)</a> <a href="#ref-for-idl-DOMString⑧">(3)</a>
    <li><a href="#ref-for-idl-DOMString⑨">9.4.1. Members</a> <a href="#ref-for-idl-DOMString①⓪">(2)</a> <a href="#ref-for-idl-DOMString①①">(3)</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="term-for-Exposed">
   <a href="https://heycam.github.io/webidl/#Exposed">https://heycam.github.io/webidl/#Exposed</a><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-Exposed">3. Image Capture API</a>
    <li><a href="#ref-for-Exposed①">4. PhotoCapabilities</a>
    <li><a href="#ref-for-Exposed②">6. MediaSettingsRange</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="term-for-invalidstateerror">
   <a href="https://heycam.github.io/webidl/#invalidstateerror">https://heycam.github.io/webidl/#invalidstateerror</a><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-invalidstateerror">3.2. Methods</a> <a href="#ref-for-invalidstateerror①">(2)</a> <a href="#ref-for-invalidstateerror②">(3)</a> <a href="#ref-for-invalidstateerror③">(4)</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="term-for-notsupportederror">
   <a href="https://heycam.github.io/webidl/#notsupportederror">https://heycam.github.io/webidl/#notsupportederror</a><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-notsupportederror">3.2. Methods</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="term-for-operationerror">
   <a href="https://heycam.github.io/webidl/#operationerror">https://heycam.github.io/webidl/#operationerror</a><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-operationerror">3.2. Methods</a> <a href="#ref-for-operationerror①">(2)</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="term-for-idl-promise">
   <a href="https://heycam.github.io/webidl/#idl-promise">https://heycam.github.io/webidl/#idl-promise</a><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-idl-promise">3. Image Capture API</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="term-for-unknownerror">
   <a href="https://heycam.github.io/webidl/#unknownerror">https://heycam.github.io/webidl/#unknownerror</a><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-unknownerror">3.2. Methods</a> <a href="#ref-for-unknownerror①">(2)</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="term-for-idl-boolean">
   <a href="https://heycam.github.io/webidl/#idl-boolean">https://heycam.github.io/webidl/#idl-boolean</a><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-idl-boolean">5. PhotoSettings</a>
    <li><a href="#ref-for-idl-boolean①">5.1. Members</a>
    <li><a href="#ref-for-idl-boolean②">9.1. MediaTrackSupportedConstraints dictionary</a> <a href="#ref-for-idl-boolean③">(2)</a> <a href="#ref-for-idl-boolean④">(3)</a> <a href="#ref-for-idl-boolean⑤">(4)</a> <a href="#ref-for-idl-boolean⑥">(5)</a> <a href="#ref-for-idl-boolean⑦">(6)</a> <a href="#ref-for-idl-boolean⑧">(7)</a> <a href="#ref-for-idl-boolean⑨">(8)</a> <a href="#ref-for-idl-boolean①⓪">(9)</a> <a href="#ref-for-idl-boolean①①">(10)</a> <a href="#ref-for-idl-boolean①②">(11)</a> <a href="#ref-for-idl-boolean①③">(12)</a> <a href="#ref-for-idl-boolean①④">(13)</a> <a href="#ref-for-idl-boolean①⑤">(14)</a> <a href="#ref-for-idl-boolean①⑥">(15)</a> <a href="#ref-for-idl-boolean①⑦">(16)</a> <a href="#ref-for-idl-boolean①⑧">(17)</a>
    <li><a href="#ref-for-idl-boolean①⑨">9.1.1. Members</a> <a href="#ref-for-idl-boolean②⓪">(2)</a> <a href="#ref-for-idl-boolean②①">(3)</a> <a href="#ref-for-idl-boolean②②">(4)</a> <a href="#ref-for-idl-boolean②③">(5)</a> <a href="#ref-for-idl-boolean②④">(6)</a> <a href="#ref-for-idl-boolean②⑤">(7)</a> <a href="#ref-for-idl-boolean②⑥">(8)</a> <a href="#ref-for-idl-boolean②⑦">(9)</a> <a href="#ref-for-idl-boolean②⑧">(10)</a> <a href="#ref-for-idl-boolean②⑨">(11)</a> <a href="#ref-for-idl-boolean③⓪">(12)</a> <a href="#ref-for-idl-boolean③①">(13)</a> <a href="#ref-for-idl-boolean③②">(14)</a> <a href="#ref-for-idl-boolean③③">(15)</a> <a href="#ref-for-idl-boolean③④">(16)</a> <a href="#ref-for-idl-boolean③⑤">(17)</a>
    <li><a href="#ref-for-idl-boolean③⑥">9.2. MediaTrackCapabilities dictionary</a>
    <li><a href="#ref-for-idl-boolean③⑦">9.2.1. Members</a>
    <li><a href="#ref-for-idl-boolean③⑧">9.4. MediaTrackSettings dictionary</a>
    <li><a href="#ref-for-idl-boolean③⑨">9.4.1. Members</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="term-for-idl-double">
   <a href="https://heycam.github.io/webidl/#idl-double">https://heycam.github.io/webidl/#idl-double</a><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-idl-double">5. PhotoSettings</a> <a href="#ref-for-idl-double①">(2)</a>
    <li><a href="#ref-for-idl-double②">5.1. Members</a> <a href="#ref-for-idl-double③">(2)</a>
    <li><a href="#ref-for-idl-double④">6. MediaSettingsRange</a> <a href="#ref-for-idl-double⑤">(2)</a> <a href="#ref-for-idl-double⑥">(3)</a>
    <li><a href="#ref-for-idl-double⑦">6.1. Attributes</a> <a href="#ref-for-idl-double⑧">(2)</a> <a href="#ref-for-idl-double⑨">(3)</a>
    <li><a href="#ref-for-idl-double①⓪">9.4. MediaTrackSettings dictionary</a> <a href="#ref-for-idl-double①①">(2)</a> <a href="#ref-for-idl-double①②">(3)</a> <a href="#ref-for-idl-double①③">(4)</a> <a href="#ref-for-idl-double①④">(5)</a> <a href="#ref-for-idl-double①⑤">(6)</a> <a href="#ref-for-idl-double①⑥">(7)</a> <a href="#ref-for-idl-double①⑦">(8)</a> <a href="#ref-for-idl-double①⑧">(9)</a> <a href="#ref-for-idl-double①⑨">(10)</a> <a href="#ref-for-idl-double②⓪">(11)</a> <a href="#ref-for-idl-double②①">(12)</a>
    <li><a href="#ref-for-idl-double②②">9.4.1. Members</a> <a href="#ref-for-idl-double②③">(2)</a> <a href="#ref-for-idl-double②④">(3)</a> <a href="#ref-for-idl-double②⑤">(4)</a> <a href="#ref-for-idl-double②⑥">(5)</a> <a href="#ref-for-idl-double②⑦">(6)</a> <a href="#ref-for-idl-double②⑧">(7)</a> <a href="#ref-for-idl-double②⑨">(8)</a> <a href="#ref-for-idl-double③⓪">(9)</a> <a href="#ref-for-idl-double③①">(10)</a> <a href="#ref-for-idl-double③②">(11)</a> <a href="#ref-for-idl-double③③">(12)</a>
    <li><a href="#ref-for-idl-double③④">12. Point2D</a> <a href="#ref-for-idl-double③⑤">(2)</a>
    <li><a href="#ref-for-idl-double③⑥">12.1. Members</a> <a href="#ref-for-idl-double③⑦">(2)</a>
   </ul>
  </aside>
  <h3 class="no-num no-ref heading settled" id="index-defined-elsewhere"><span class="content">Terms defined by reference</span><a class="self-link" href="#index-defined-elsewhere"></a></h3>
  <ul class="index">
   <li>
    <a data-link-type="biblio">[FileAPI]</a> defines the following terms:
    <ul>
     <li><span class="dfn-paneled" id="term-for-dfn-Blob" style="color:initial">Blob</span>
    </ul>
   <li>
    <a data-link-type="biblio">[HTML]</a> defines the following terms:
    <ul>
     <li><span class="dfn-paneled" id="term-for-imagebitmap" style="color:initial">ImageBitmap</span>
    </ul>
   <li>
    <a data-link-type="biblio">[promises-guide]</a> defines the following terms:
    <ul>
     <li><span class="dfn-paneled" id="term-for-a-promise-rejected-with" style="color:initial">a promise rejected with</span>
    </ul>
   <li>
    <a data-link-type="biblio">[WebIDL]</a> defines the following terms:
    <ul>
     <li><span class="dfn-paneled" id="term-for-idl-DOMException" style="color:initial">DOMException</span>
     <li><span class="dfn-paneled" id="term-for-idl-DOMString" style="color:initial">DOMString</span>
     <li><span class="dfn-paneled" id="term-for-Exposed" style="color:initial">Exposed</span>
     <li><span class="dfn-paneled" id="term-for-invalidstateerror" style="color:initial">InvalidStateError</span>
     <li><span class="dfn-paneled" id="term-for-notsupportederror" style="color:initial">NotSupportedError</span>
     <li><span class="dfn-paneled" id="term-for-operationerror" style="color:initial">OperationError</span>
     <li><span class="dfn-paneled" id="term-for-idl-promise" style="color:initial">Promise</span>
     <li><span class="dfn-paneled" id="term-for-unknownerror" style="color:initial">UnknownError</span>
     <li><span class="dfn-paneled" id="term-for-idl-boolean" style="color:initial">boolean</span>
     <li><span class="dfn-paneled" id="term-for-idl-double" style="color:initial">double</span>
    </ul>
  </ul>
  <h2 class="no-num no-ref heading settled" id="references"><span class="content">References</span><a class="self-link" href="#references"></a></h2>
  <h3 class="no-num no-ref heading settled" id="normative"><span class="content">Normative References</span><a class="self-link" href="#normative"></a></h3>
  <dl>
   <dt id="biblio-fileapi">[FileAPI]
   <dd>Marijn Kruisselbrink; Arun Ranganathan. <a href="https://www.w3.org/TR/FileAPI/">File API</a>. 31 May 2019. WD. URL: <a href="https://www.w3.org/TR/FileAPI/">https://www.w3.org/TR/FileAPI/</a>
   <dt id="biblio-getusermedia">[GETUSERMEDIA]
   <dd>Daniel Burnett; et al. <a href="https://www.w3.org/TR/mediacapture-streams/">Media Capture and Streams</a>. 3 October 2017. CR. URL: <a href="https://www.w3.org/TR/mediacapture-streams/">https://www.w3.org/TR/mediacapture-streams/</a>
   <dt id="biblio-html">[HTML]
   <dd>Anne van Kesteren; et al. <a href="https://html.spec.whatwg.org/multipage/">HTML Standard</a>. Living Standard. URL: <a href="https://html.spec.whatwg.org/multipage/">https://html.spec.whatwg.org/multipage/</a>
   <dt id="biblio-promises-guide">[PROMISES-GUIDE]
   <dd>Domenic Denicola. <a href="https://www.w3.org/2001/tag/doc/promises-guide">Writing Promise-Using Specifications</a>. 9 November 2018. TAG Finding. URL: <a href="https://www.w3.org/2001/tag/doc/promises-guide">https://www.w3.org/2001/tag/doc/promises-guide</a>
   <dt id="biblio-rfc2119">[RFC2119]
   <dd>S. Bradner. <a href="https://tools.ietf.org/html/rfc2119">Key words for use in RFCs to Indicate Requirement Levels</a>. March 1997. Best Current Practice. URL: <a href="https://tools.ietf.org/html/rfc2119">https://tools.ietf.org/html/rfc2119</a>
   <dt id="biblio-webidl">[WebIDL]
   <dd>Boris Zbarsky. <a href="https://heycam.github.io/webidl/">Web IDL</a>. 15 December 2016. ED. URL: <a href="https://heycam.github.io/webidl/">https://heycam.github.io/webidl/</a>
  </dl>
  <h3 class="no-num no-ref heading settled" id="informative"><span class="content">Informative References</span><a class="self-link" href="#informative"></a></h3>
  <dl>
   <dt id="biblio-iso12232">[ISO12232]
   <dd><a href="http://www.iso.org/iso/catalogue_detail.htm?csnumber=37777">Photography - Digital still cameras - Determination of exposure index, ISO speed ratings, standard output sensitivity, and recommended exposure index</a>. 15 April 2006. URL: <a href="http://www.iso.org/iso/catalogue_detail.htm?csnumber=37777">http://www.iso.org/iso/catalogue_detail.htm?csnumber=37777</a>
   <dt id="biblio-lighting-vocabulary">[LIGHTING-VOCABULARY]
   <dd>CIE International Lighting Vocabulary: IEC International Electrotechnical Vocabulary.. 15 December 1987. 
   <dt id="biblio-uvc">[UVC]
   <dd><a href="http://www.usb.org/developers/docs/devclass_docs/">USB Device Class Definition for Video Devices</a>. 9 August 2012. URL: <a href="http://www.usb.org/developers/docs/devclass_docs/">http://www.usb.org/developers/docs/devclass_docs/</a>
  </dl>
  <h2 class="no-num no-ref heading settled" id="idl-index"><span class="content">IDL Index</span><a class="self-link" href="#idl-index"></a></h2>
<pre class="idl highlight def">[<a class="idl-code" data-link-type="extended-attribute" href="https://heycam.github.io/webidl/#Exposed" id="ref-for-Exposed③"><c- g>Exposed</c-></a>=<c- n>Window</c->]
<c- b>interface</c-> <a href="#imagecapture"><code><c- g>ImageCapture</c-></code></a> {
   <a class="idl-code" data-link-type="constructor" href="#dom-imagecapture-imagecapture" id="ref-for-dom-imagecapture-imagecapture①"><c- g>constructor</c-></a>(<a class="n" data-link-type="idl-name" href="https://www.w3.org/TR/mediacapture-streams/#mediastreamtrack" id="ref-for-mediastreamtrack③①"><c- n>MediaStreamTrack</c-></a> <a href="#dom-imagecapture-imagecapture-videotrack-videotrack"><code><c- g>videoTrack</c-></code></a>);
   <c- b>Promise</c->&lt;<a class="n" data-link-type="idl-name" href="https://w3c.github.io/FileAPI/#dfn-Blob" id="ref-for-dfn-Blob①①"><c- n>Blob</c-></a>>              <a class="idl-code" data-link-type="method" href="#dom-imagecapture-takephoto" id="ref-for-dom-imagecapture-takephoto②①"><c- g>takePhoto</c-></a>(<c- b>optional</c-> <a class="n" data-link-type="idl-name" href="#dictdef-photosettings" id="ref-for-dictdef-photosettings①①"><c- n>PhotoSettings</c-></a> <a href="#dom-imagecapture-takephoto-photosettings-photosettings"><code><c- g>photoSettings</c-></code></a> = {});
   <c- b>Promise</c->&lt;<a class="n" data-link-type="idl-name" href="#photocapabilities" id="ref-for-photocapabilities③"><c- n>PhotoCapabilities</c-></a>> <a class="idl-code" data-link-type="method" href="#dom-imagecapture-getphotocapabilities" id="ref-for-dom-imagecapture-getphotocapabilities①①"><c- g>getPhotoCapabilities</c-></a>();
   <c- b>Promise</c->&lt;<a class="n" data-link-type="idl-name" href="#dictdef-photosettings" id="ref-for-dictdef-photosettings②①"><c- n>PhotoSettings</c-></a>>     <a class="idl-code" data-link-type="method" href="#dom-imagecapture-getphotosettings" id="ref-for-dom-imagecapture-getphotosettings①①"><c- g>getPhotoSettings</c-></a>();

   <c- b>Promise</c->&lt;<a class="n" data-link-type="idl-name" href="https://html.spec.whatwg.org/multipage/imagebitmap-and-animations.html#imagebitmap" id="ref-for-imagebitmap①①"><c- n>ImageBitmap</c-></a>>       <a class="idl-code" data-link-type="method" href="#dom-imagecapture-grabframe" id="ref-for-dom-imagecapture-grabframe①①"><c- g>grabFrame</c-></a>();

   <c- b>readonly</c-> <c- b>attribute</c-> <a class="n" data-link-type="idl-name" href="https://www.w3.org/TR/mediacapture-streams/#mediastreamtrack" id="ref-for-mediastreamtrack④①"><c- n>MediaStreamTrack</c-></a> <a class="idl-code" data-link-type="attribute" data-readonly data-type="MediaStreamTrack" href="#dom-imagecapture-track" id="ref-for-dom-imagecapture-track①⑥"><c- g>track</c-></a>;
};

[<a class="idl-code" data-link-type="extended-attribute" href="https://heycam.github.io/webidl/#Exposed" id="ref-for-Exposed①①"><c- g>Exposed</c-></a>=<c- n>Window</c->] <c- b>interface</c-> <a href="#photocapabilities"><code><c- g>PhotoCapabilities</c-></code></a> {
  <c- b>readonly</c-> <c- b>attribute</c-> <a class="n" data-link-type="idl-name" href="#enumdef-redeyereduction" id="ref-for-enumdef-redeyereduction③"><c- n>RedEyeReduction</c-></a>            <a class="idl-code" data-link-type="attribute" data-readonly data-type="RedEyeReduction" href="#dom-photocapabilities-redeyereduction" id="ref-for-dom-photocapabilities-redeyereduction①"><c- g>redEyeReduction</c-></a>;
  <c- b>readonly</c-> <c- b>attribute</c-> <a class="n" data-link-type="idl-name" href="#mediasettingsrange" id="ref-for-mediasettingsrange②⑨"><c- n>MediaSettingsRange</c-></a>         <a class="idl-code" data-link-type="attribute" data-readonly data-type="MediaSettingsRange" href="#dom-photocapabilities-imageheight" id="ref-for-dom-photocapabilities-imageheight③"><c- g>imageHeight</c-></a>;
  <c- b>readonly</c-> <c- b>attribute</c-> <a class="n" data-link-type="idl-name" href="#mediasettingsrange" id="ref-for-mediasettingsrange①①⓪"><c- n>MediaSettingsRange</c-></a>         <a class="idl-code" data-link-type="attribute" data-readonly data-type="MediaSettingsRange" href="#dom-photocapabilities-imagewidth" id="ref-for-dom-photocapabilities-imagewidth③"><c- g>imageWidth</c-></a>;
  <c- b>readonly</c-> <c- b>attribute</c-> <c- b>FrozenArray</c->&lt;<a class="n" data-link-type="idl-name" href="#enumdef-filllightmode" id="ref-for-enumdef-filllightmode⑤"><c- n>FillLightMode</c-></a>> <a class="idl-code" data-link-type="attribute" data-readonly data-type="FrozenArray<FillLightMode>" href="#dom-photocapabilities-filllightmode" id="ref-for-dom-photocapabilities-filllightmode①"><c- g>fillLightMode</c-></a>;
};

<c- b>dictionary</c-> <a href="#dictdef-photosettings"><code><c- g>PhotoSettings</c-></code></a> {
  <a class="n" data-link-type="idl-name" href="#enumdef-filllightmode" id="ref-for-enumdef-filllightmode②①"><c- n>FillLightMode</c-></a>   <a class="idl-code" data-link-type="dict-member" data-type="FillLightMode   " href="#dom-photosettings-filllightmode" id="ref-for-dom-photosettings-filllightmode①"><c- g>fillLightMode</c-></a>;
  <a class="idl-code" data-link-type="interface" href="https://heycam.github.io/webidl/#idl-double" id="ref-for-idl-double③⑧"><c- b>double</c-></a>          <a class="idl-code" data-link-type="dict-member" data-type="double          " href="#dom-photosettings-imageheight" id="ref-for-dom-photosettings-imageheight①"><c- g>imageHeight</c-></a>;
  <a class="idl-code" data-link-type="interface" href="https://heycam.github.io/webidl/#idl-double" id="ref-for-idl-double①①⓪"><c- b>double</c-></a>          <a class="idl-code" data-link-type="dict-member" data-type="double          " href="#dom-photosettings-imagewidth" id="ref-for-dom-photosettings-imagewidth①"><c- g>imageWidth</c-></a>;
  <a class="idl-code" data-link-type="interface" href="https://heycam.github.io/webidl/#idl-boolean" id="ref-for-idl-boolean④⓪"><c- b>boolean</c-></a>         <a class="idl-code" data-link-type="dict-member" data-type="boolean         " href="#dom-photosettings-redeyereduction" id="ref-for-dom-photosettings-redeyereduction②"><c- g>redEyeReduction</c-></a>;
};

[<a class="idl-code" data-link-type="extended-attribute" href="https://heycam.github.io/webidl/#Exposed" id="ref-for-Exposed②①"><c- g>Exposed</c-></a>=<c- n>Window</c->] <c- b>interface</c-> <a href="#mediasettingsrange"><code><c- g>MediaSettingsRange</c-></code></a> {
    <c- b>readonly</c-> <c- b>attribute</c-> <a class="idl-code" data-link-type="interface" href="https://heycam.github.io/webidl/#idl-double" id="ref-for-idl-double④①"><c- b>double</c-></a> <a class="idl-code" data-link-type="attribute" data-readonly data-type="double" href="#dom-mediasettingsrange-max" id="ref-for-dom-mediasettingsrange-max①"><c- g>max</c-></a>;
    <c- b>readonly</c-> <c- b>attribute</c-> <a class="idl-code" data-link-type="interface" href="https://heycam.github.io/webidl/#idl-double" id="ref-for-idl-double⑤①"><c- b>double</c-></a> <a class="idl-code" data-link-type="attribute" data-readonly data-type="double" href="#dom-mediasettingsrange-min" id="ref-for-dom-mediasettingsrange-min①"><c- g>min</c-></a>;
    <c- b>readonly</c-> <c- b>attribute</c-> <a class="idl-code" data-link-type="interface" href="https://heycam.github.io/webidl/#idl-double" id="ref-for-idl-double⑥①"><c- b>double</c-></a> <a class="idl-code" data-link-type="attribute" data-readonly data-type="double" href="#dom-mediasettingsrange-step" id="ref-for-dom-mediasettingsrange-step①"><c- g>step</c-></a>;
};

<c- b>enum</c-> <a href="#enumdef-redeyereduction"><code><c- g>RedEyeReduction</c-></code></a> {
  <a class="idl-code" data-link-type="enum-value" href="#dom-redeyereduction-never" id="ref-for-dom-redeyereduction-never①"><c- s>"never"</c-></a>,
  <a class="idl-code" data-link-type="enum-value" href="#dom-redeyereduction-always" id="ref-for-dom-redeyereduction-always①"><c- s>"always"</c-></a>,
  <a class="idl-code" data-link-type="enum-value" href="#dom-redeyereduction-controllable" id="ref-for-dom-redeyereduction-controllable①"><c- s>"controllable"</c-></a>
};

<c- b>enum</c-> <a href="#enumdef-filllightmode"><code><c- g>FillLightMode</c-></code></a> {
  <a class="idl-code" data-link-type="enum-value" href="#dom-filllightmode-auto" id="ref-for-dom-filllightmode-auto①"><c- s>"auto"</c-></a>,
  <a class="idl-code" data-link-type="enum-value" href="#dom-filllightmode-off" id="ref-for-dom-filllightmode-off①"><c- s>"off"</c-></a>,
  <a class="idl-code" data-link-type="enum-value" href="#dom-filllightmode-flash" id="ref-for-dom-filllightmode-flash②"><c- s>"flash"</c-></a>
};

<c- b>partial</c-> <c- b>dictionary</c-> <a class="idl-code" data-link-type="dictionary" href="https://www.w3.org/TR/mediacapture-streams/#idl-def-MediaTrackSupportedConstraints" id="ref-for-idl-def-MediaTrackSupportedConstraints②①"><c- g>MediaTrackSupportedConstraints</c-></a> {
  <a class="idl-code" data-link-type="interface" href="https://heycam.github.io/webidl/#idl-boolean" id="ref-for-idl-boolean②①⓪"><c- b>boolean</c-></a> <a class="idl-code" data-default="true" data-link-type="dict-member" data-type="boolean " href="#dom-mediatracksupportedconstraints-whitebalancemode" id="ref-for-dom-mediatracksupportedconstraints-whitebalancemode①"><c- g>whiteBalanceMode</c-></a> = <c- b>true</c->;
  <a class="idl-code" data-link-type="interface" href="https://heycam.github.io/webidl/#idl-boolean" id="ref-for-idl-boolean③①⓪"><c- b>boolean</c-></a> <a class="idl-code" data-default="true" data-link-type="dict-member" data-type="boolean " href="#dom-mediatracksupportedconstraints-exposuremode" id="ref-for-dom-mediatracksupportedconstraints-exposuremode①"><c- g>exposureMode</c-></a> = <c- b>true</c->;
  <a class="idl-code" data-link-type="interface" href="https://heycam.github.io/webidl/#idl-boolean" id="ref-for-idl-boolean④①"><c- b>boolean</c-></a> <a class="idl-code" data-default="true" data-link-type="dict-member" data-type="boolean " href="#dom-mediatracksupportedconstraints-focusmode" id="ref-for-dom-mediatracksupportedconstraints-focusmode①"><c- g>focusMode</c-></a> = <c- b>true</c->;
  <a class="idl-code" data-link-type="interface" href="https://heycam.github.io/webidl/#idl-boolean" id="ref-for-idl-boolean⑤①"><c- b>boolean</c-></a> <a class="idl-code" data-default="true" data-link-type="dict-member" data-type="boolean " href="#dom-mediatracksupportedconstraints-pointsofinterest" id="ref-for-dom-mediatracksupportedconstraints-pointsofinterest①"><c- g>pointsOfInterest</c-></a> = <c- b>true</c->;

  <a class="idl-code" data-link-type="interface" href="https://heycam.github.io/webidl/#idl-boolean" id="ref-for-idl-boolean⑥①"><c- b>boolean</c-></a> <a class="idl-code" data-default="true" data-link-type="dict-member" data-type="boolean " href="#dom-mediatracksupportedconstraints-exposurecompensation" id="ref-for-dom-mediatracksupportedconstraints-exposurecompensation①"><c- g>exposureCompensation</c-></a> = <c- b>true</c->;
  <a class="idl-code" data-link-type="interface" href="https://heycam.github.io/webidl/#idl-boolean" id="ref-for-idl-boolean⑦①"><c- b>boolean</c-></a> <a class="idl-code" data-default="true" data-link-type="dict-member" data-type="boolean " href="#dom-mediatracksupportedconstraints-exposuretime" id="ref-for-dom-mediatracksupportedconstraints-exposuretime①"><c- g>exposureTime</c-></a> = <c- b>true</c->;
  <a class="idl-code" data-link-type="interface" href="https://heycam.github.io/webidl/#idl-boolean" id="ref-for-idl-boolean⑧①"><c- b>boolean</c-></a> <a class="idl-code" data-default="true" data-link-type="dict-member" data-type="boolean " href="#dom-mediatracksupportedconstraints-colortemperature" id="ref-for-dom-mediatracksupportedconstraints-colortemperature①"><c- g>colorTemperature</c-></a> = <c- b>true</c->;
  <a class="idl-code" data-link-type="interface" href="https://heycam.github.io/webidl/#idl-boolean" id="ref-for-idl-boolean⑨①"><c- b>boolean</c-></a> <a class="idl-code" data-default="true" data-link-type="dict-member" data-type="boolean " href="#dom-mediatracksupportedconstraints-iso" id="ref-for-dom-mediatracksupportedconstraints-iso①"><c- g>iso</c-></a> = <c- b>true</c->;

  <a class="idl-code" data-link-type="interface" href="https://heycam.github.io/webidl/#idl-boolean" id="ref-for-idl-boolean①⓪①"><c- b>boolean</c-></a> <a class="idl-code" data-default="true" data-link-type="dict-member" data-type="boolean " href="#dom-mediatracksupportedconstraints-brightness" id="ref-for-dom-mediatracksupportedconstraints-brightness①"><c- g>brightness</c-></a> = <c- b>true</c->;
  <a class="idl-code" data-link-type="interface" href="https://heycam.github.io/webidl/#idl-boolean" id="ref-for-idl-boolean①①①"><c- b>boolean</c-></a> <a class="idl-code" data-default="true" data-link-type="dict-member" data-type="boolean " href="#dom-mediatracksupportedconstraints-contrast" id="ref-for-dom-mediatracksupportedconstraints-contrast①"><c- g>contrast</c-></a> = <c- b>true</c->;
  <a class="idl-code" data-link-type="interface" href="https://heycam.github.io/webidl/#idl-boolean" id="ref-for-idl-boolean①②①"><c- b>boolean</c-></a> <a class="idl-code" data-default="true" data-link-type="dict-member" data-type="boolean " href="#dom-mediatracksupportedconstraints-pan" id="ref-for-dom-mediatracksupportedconstraints-pan①"><c- g>pan</c-></a> = <c- b>true</c->;
  <a class="idl-code" data-link-type="interface" href="https://heycam.github.io/webidl/#idl-boolean" id="ref-for-idl-boolean①③①"><c- b>boolean</c-></a> <a class="idl-code" data-default="true" data-link-type="dict-member" data-type="boolean " href="#dom-mediatracksupportedconstraints-saturation" id="ref-for-dom-mediatracksupportedconstraints-saturation①"><c- g>saturation</c-></a> = <c- b>true</c->;
  <a class="idl-code" data-link-type="interface" href="https://heycam.github.io/webidl/#idl-boolean" id="ref-for-idl-boolean①④①"><c- b>boolean</c-></a> <a class="idl-code" data-default="true" data-link-type="dict-member" data-type="boolean " href="#dom-mediatracksupportedconstraints-sharpness" id="ref-for-dom-mediatracksupportedconstraints-sharpness①"><c- g>sharpness</c-></a> = <c- b>true</c->;
  <a class="idl-code" data-link-type="interface" href="https://heycam.github.io/webidl/#idl-boolean" id="ref-for-idl-boolean①⑤①"><c- b>boolean</c-></a> <a class="idl-code" data-default="true" data-link-type="dict-member" data-type="boolean " href="#dom-mediatracksupportedconstraints-focusdistance" id="ref-for-dom-mediatracksupportedconstraints-focusdistance①"><c- g>focusDistance</c-></a> = <c- b>true</c->;
  <a class="idl-code" data-link-type="interface" href="https://heycam.github.io/webidl/#idl-boolean" id="ref-for-idl-boolean①⑥①"><c- b>boolean</c-></a> <a class="idl-code" data-default="true" data-link-type="dict-member" data-type="boolean " href="#dom-mediatracksupportedconstraints-tilt" id="ref-for-dom-mediatracksupportedconstraints-tilt①"><c- g>tilt</c-></a> = <c- b>true</c->;
  <a class="idl-code" data-link-type="interface" href="https://heycam.github.io/webidl/#idl-boolean" id="ref-for-idl-boolean①⑦①"><c- b>boolean</c-></a> <a class="idl-code" data-default="true" data-link-type="dict-member" data-type="boolean " href="#dom-mediatracksupportedconstraints-zoom" id="ref-for-dom-mediatracksupportedconstraints-zoom①"><c- g>zoom</c-></a> = <c- b>true</c->;
  <a class="idl-code" data-link-type="interface" href="https://heycam.github.io/webidl/#idl-boolean" id="ref-for-idl-boolean①⑧①"><c- b>boolean</c-></a> <a class="idl-code" data-default="true" data-link-type="dict-member" data-type="boolean " href="#dom-mediatracksupportedconstraints-torch" id="ref-for-dom-mediatracksupportedconstraints-torch①"><c- g>torch</c-></a> = <c- b>true</c->;
};

<c- b>partial</c-> <c- b>dictionary</c-> <a class="idl-code" data-link-type="dictionary" href="https://www.w3.org/TR/mediacapture-streams/#idl-def-MediaTrackCapabilities" id="ref-for-idl-def-MediaTrackCapabilities②①"><c- g>MediaTrackCapabilities</c-></a> {
  <c- b>sequence</c->&lt;<a class="idl-code" data-link-type="interface" href="https://heycam.github.io/webidl/#idl-DOMString" id="ref-for-idl-DOMString①③"><c- b>DOMString</c-></a>>  <a class="idl-code" data-link-type="dict-member" data-type="sequence<DOMString>  " href="#dom-mediatrackcapabilities-whitebalancemode" id="ref-for-dom-mediatrackcapabilities-whitebalancemode①"><c- g>whiteBalanceMode</c-></a>;
  <c- b>sequence</c->&lt;<a class="idl-code" data-link-type="interface" href="https://heycam.github.io/webidl/#idl-DOMString" id="ref-for-idl-DOMString①②"><c- b>DOMString</c-></a>>  <a class="idl-code" data-link-type="dict-member" data-type="sequence<DOMString>  " href="#dom-mediatrackcapabilities-exposuremode" id="ref-for-dom-mediatrackcapabilities-exposuremode①"><c- g>exposureMode</c-></a>;
  <c- b>sequence</c->&lt;<a class="idl-code" data-link-type="interface" href="https://heycam.github.io/webidl/#idl-DOMString" id="ref-for-idl-DOMString②①"><c- b>DOMString</c-></a>>  <a class="idl-code" data-link-type="dict-member" data-type="sequence<DOMString>  " href="#dom-mediatrackcapabilities-focusmode" id="ref-for-dom-mediatrackcapabilities-focusmode①"><c- g>focusMode</c-></a>;

  <a class="n" data-link-type="idl-name" href="#mediasettingsrange" id="ref-for-mediasettingsrange⑤①"><c- n>MediaSettingsRange</c-></a>   <a class="idl-code" data-link-type="dict-member" data-type="MediaSettingsRange   " href="#dom-mediatrackcapabilities-exposurecompensation" id="ref-for-dom-mediatrackcapabilities-exposurecompensation①"><c- g>exposureCompensation</c-></a>;
  <a class="n" data-link-type="idl-name" href="#mediasettingsrange" id="ref-for-mediasettingsrange⑥①"><c- n>MediaSettingsRange</c-></a>   <a class="idl-code" data-link-type="dict-member" data-type="MediaSettingsRange   " href="#dom-mediatrackcapabilities-exposuretime" id="ref-for-dom-mediatrackcapabilities-exposuretime①"><c- g>exposureTime</c-></a>;
  <a class="n" data-link-type="idl-name" href="#mediasettingsrange" id="ref-for-mediasettingsrange⑦①"><c- n>MediaSettingsRange</c-></a>   <a class="idl-code" data-link-type="dict-member" data-type="MediaSettingsRange   " href="#dom-mediatrackcapabilities-colortemperature" id="ref-for-dom-mediatrackcapabilities-colortemperature①"><c- g>colorTemperature</c-></a>;
  <a class="n" data-link-type="idl-name" href="#mediasettingsrange" id="ref-for-mediasettingsrange⑧①"><c- n>MediaSettingsRange</c-></a>   <a class="idl-code" data-link-type="dict-member" data-type="MediaSettingsRange   " href="#dom-mediatrackcapabilities-iso" id="ref-for-dom-mediatrackcapabilities-iso①"><c- g>iso</c-></a>;

  <a class="n" data-link-type="idl-name" href="#mediasettingsrange" id="ref-for-mediasettingsrange⑨①"><c- n>MediaSettingsRange</c-></a>   <a class="idl-code" data-link-type="dict-member" data-type="MediaSettingsRange   " href="#dom-mediatrackcapabilities-brightness" id="ref-for-dom-mediatrackcapabilities-brightness①"><c- g>brightness</c-></a>;
  <a class="n" data-link-type="idl-name" href="#mediasettingsrange" id="ref-for-mediasettingsrange①⓪①"><c- n>MediaSettingsRange</c-></a>   <a class="idl-code" data-link-type="dict-member" data-type="MediaSettingsRange   " href="#dom-mediatrackcapabilities-contrast" id="ref-for-dom-mediatrackcapabilities-contrast①"><c- g>contrast</c-></a>;
  <a class="n" data-link-type="idl-name" href="#mediasettingsrange" id="ref-for-mediasettingsrange①①①"><c- n>MediaSettingsRange</c-></a>   <a class="idl-code" data-link-type="dict-member" data-type="MediaSettingsRange   " href="#dom-mediatrackcapabilities-saturation" id="ref-for-dom-mediatrackcapabilities-saturation①"><c- g>saturation</c-></a>;
  <a class="n" data-link-type="idl-name" href="#mediasettingsrange" id="ref-for-mediasettingsrange①②①"><c- n>MediaSettingsRange</c-></a>   <a class="idl-code" data-link-type="dict-member" data-type="MediaSettingsRange   " href="#dom-mediatrackcapabilities-sharpness" id="ref-for-dom-mediatrackcapabilities-sharpness①"><c- g>sharpness</c-></a>;

  <a class="n" data-link-type="idl-name" href="#mediasettingsrange" id="ref-for-mediasettingsrange①③①"><c- n>MediaSettingsRange</c-></a>   <a class="idl-code" data-link-type="dict-member" data-type="MediaSettingsRange   " href="#dom-mediatrackcapabilities-focusdistance" id="ref-for-dom-mediatrackcapabilities-focusdistance①"><c- g>focusDistance</c-></a>;
  <a class="n" data-link-type="idl-name" href="#mediasettingsrange" id="ref-for-mediasettingsrange①④①"><c- n>MediaSettingsRange</c-></a>   <a class="idl-code" data-link-type="dict-member" data-type="MediaSettingsRange   " href="#dom-mediatrackcapabilities-pan" id="ref-for-dom-mediatrackcapabilities-pan①"><c- g>pan</c-></a>;
  <a class="n" data-link-type="idl-name" href="#mediasettingsrange" id="ref-for-mediasettingsrange①⑤①"><c- n>MediaSettingsRange</c-></a>   <a class="idl-code" data-link-type="dict-member" data-type="MediaSettingsRange   " href="#dom-mediatrackcapabilities-tilt" id="ref-for-dom-mediatrackcapabilities-tilt①"><c- g>tilt</c-></a>;
  <a class="n" data-link-type="idl-name" href="#mediasettingsrange" id="ref-for-mediasettingsrange①⑥①"><c- n>MediaSettingsRange</c-></a>   <a class="idl-code" data-link-type="dict-member" data-type="MediaSettingsRange   " href="#dom-mediatrackcapabilities-zoom" id="ref-for-dom-mediatrackcapabilities-zoom①"><c- g>zoom</c-></a>;

  <a class="idl-code" data-link-type="interface" href="https://heycam.github.io/webidl/#idl-boolean" id="ref-for-idl-boolean③⑥①"><c- b>boolean</c-></a>              <a class="idl-code" data-link-type="dict-member" data-type="boolean              " href="#dom-mediatrackcapabilities-torch" id="ref-for-dom-mediatrackcapabilities-torch①"><c- g>torch</c-></a>;
};

<c- b>partial</c-> <c- b>dictionary</c-> <a class="idl-code" data-link-type="dictionary" href="https://www.w3.org/TR/mediacapture-streams/#idl-def-MediaTrackConstraintSet" id="ref-for-idl-def-MediaTrackConstraintSet②①"><c- g>MediaTrackConstraintSet</c-></a> {
  <a class="n" data-link-type="idl-name" href="https://www.w3.org/TR/mediacapture-streams/#idl-def-constraindomstring" id="ref-for-idl-def-constraindomstring⑥"><c- n>ConstrainDOMString</c-></a> <a class="idl-code" data-link-type="dict-member" data-type="ConstrainDOMString " href="#dom-mediatrackconstraintset-whitebalancemode" id="ref-for-dom-mediatrackconstraintset-whitebalancemode①"><c- g>whiteBalanceMode</c-></a>;
  <a class="n" data-link-type="idl-name" href="https://www.w3.org/TR/mediacapture-streams/#idl-def-constraindomstring" id="ref-for-idl-def-constraindomstring①①"><c- n>ConstrainDOMString</c-></a> <a class="idl-code" data-link-type="dict-member" data-type="ConstrainDOMString " href="#dom-mediatrackconstraintset-exposuremode" id="ref-for-dom-mediatrackconstraintset-exposuremode①"><c- g>exposureMode</c-></a>;
  <a class="n" data-link-type="idl-name" href="https://www.w3.org/TR/mediacapture-streams/#idl-def-constraindomstring" id="ref-for-idl-def-constraindomstring②①"><c- n>ConstrainDOMString</c-></a> <a class="idl-code" data-link-type="dict-member" data-type="ConstrainDOMString " href="#dom-mediatrackconstraintset-focusmode" id="ref-for-dom-mediatrackconstraintset-focusmode①"><c- g>focusMode</c-></a>;
  <a class="n" data-link-type="idl-name" href="#typedefdef-constrainpoint2d" id="ref-for-typedefdef-constrainpoint2d②"><c- n>ConstrainPoint2D</c-></a>   <a class="idl-code" data-link-type="dict-member" data-type="ConstrainPoint2D   " href="#dom-mediatrackconstraintset-pointsofinterest" id="ref-for-dom-mediatrackconstraintset-pointsofinterest①"><c- g>pointsOfInterest</c-></a>;

  <a class="n" data-link-type="idl-name" href="https://www.w3.org/TR/mediacapture-streams/#idl-def-ConstrainDouble" id="ref-for-idl-def-ConstrainDouble②⑤"><c- n>ConstrainDouble</c-></a>    <a class="idl-code" data-link-type="dict-member" data-type="ConstrainDouble    " href="#dom-mediatrackconstraintset-exposurecompensation" id="ref-for-dom-mediatrackconstraintset-exposurecompensation①"><c- g>exposureCompensation</c-></a>;
  <a class="n" data-link-type="idl-name" href="https://www.w3.org/TR/mediacapture-streams/#idl-def-ConstrainDouble" id="ref-for-idl-def-ConstrainDouble①①⓪"><c- n>ConstrainDouble</c-></a>    <a class="idl-code" data-link-type="dict-member" data-type="ConstrainDouble    " href="#dom-mediatrackconstraintset-exposuretime" id="ref-for-dom-mediatrackconstraintset-exposuretime①"><c- g>exposureTime</c-></a>;
  <a class="n" data-link-type="idl-name" href="https://www.w3.org/TR/mediacapture-streams/#idl-def-ConstrainDouble" id="ref-for-idl-def-ConstrainDouble②④"><c- n>ConstrainDouble</c-></a>    <a class="idl-code" data-link-type="dict-member" data-type="ConstrainDouble    " href="#dom-mediatrackconstraintset-colortemperature" id="ref-for-dom-mediatrackconstraintset-colortemperature①"><c- g>colorTemperature</c-></a>;
  <a class="n" data-link-type="idl-name" href="https://www.w3.org/TR/mediacapture-streams/#idl-def-ConstrainDouble" id="ref-for-idl-def-ConstrainDouble③①"><c- n>ConstrainDouble</c-></a>    <a class="idl-code" data-link-type="dict-member" data-type="ConstrainDouble    " href="#dom-mediatrackconstraintset-iso" id="ref-for-dom-mediatrackconstraintset-iso①"><c- g>iso</c-></a>;

  <a class="n" data-link-type="idl-name" href="https://www.w3.org/TR/mediacapture-streams/#idl-def-ConstrainDouble" id="ref-for-idl-def-ConstrainDouble④①"><c- n>ConstrainDouble</c-></a>    <a class="idl-code" data-link-type="dict-member" data-type="ConstrainDouble    " href="#dom-mediatrackconstraintset-brightness" id="ref-for-dom-mediatrackconstraintset-brightness①"><c- g>brightness</c-></a>;
  <a class="n" data-link-type="idl-name" href="https://www.w3.org/TR/mediacapture-streams/#idl-def-ConstrainDouble" id="ref-for-idl-def-ConstrainDouble⑤①"><c- n>ConstrainDouble</c-></a>    <a class="idl-code" data-link-type="dict-member" data-type="ConstrainDouble    " href="#dom-mediatrackconstraintset-contrast" id="ref-for-dom-mediatrackconstraintset-contrast①"><c- g>contrast</c-></a>;
  <a class="n" data-link-type="idl-name" href="https://www.w3.org/TR/mediacapture-streams/#idl-def-ConstrainDouble" id="ref-for-idl-def-ConstrainDouble⑥①"><c- n>ConstrainDouble</c-></a>    <a class="idl-code" data-link-type="dict-member" data-type="ConstrainDouble    " href="#dom-mediatrackconstraintset-saturation" id="ref-for-dom-mediatrackconstraintset-saturation①"><c- g>saturation</c-></a>;
  <a class="n" data-link-type="idl-name" href="https://www.w3.org/TR/mediacapture-streams/#idl-def-ConstrainDouble" id="ref-for-idl-def-ConstrainDouble⑦①"><c- n>ConstrainDouble</c-></a>    <a class="idl-code" data-link-type="dict-member" data-type="ConstrainDouble    " href="#dom-mediatrackconstraintset-sharpness" id="ref-for-dom-mediatrackconstraintset-sharpness①"><c- g>sharpness</c-></a>;

  <a class="n" data-link-type="idl-name" href="https://www.w3.org/TR/mediacapture-streams/#idl-def-ConstrainDouble" id="ref-for-idl-def-ConstrainDouble⑧①"><c- n>ConstrainDouble</c-></a>    <a class="idl-code" data-link-type="dict-member" data-type="ConstrainDouble    " href="#dom-mediatrackconstraintset-focusdistance" id="ref-for-dom-mediatrackconstraintset-focusdistance①"><c- g>focusDistance</c-></a>;
  <a class="n" data-link-type="idl-name" href="https://www.w3.org/TR/mediacapture-streams/#idl-def-ConstrainDouble" id="ref-for-idl-def-ConstrainDouble⑨①"><c- n>ConstrainDouble</c-></a>    <a class="idl-code" data-link-type="dict-member" data-type="ConstrainDouble    " href="#dom-mediatrackconstraintset-pan" id="ref-for-dom-mediatrackconstraintset-pan①"><c- g>pan</c-></a>;
  <a class="n" data-link-type="idl-name" href="https://www.w3.org/TR/mediacapture-streams/#idl-def-ConstrainDouble" id="ref-for-idl-def-ConstrainDouble①⓪①"><c- n>ConstrainDouble</c-></a>    <a class="idl-code" data-link-type="dict-member" data-type="ConstrainDouble    " href="#dom-mediatrackconstraintset-tilt" id="ref-for-dom-mediatrackconstraintset-tilt①"><c- g>tilt</c-></a>;
  <a class="n" data-link-type="idl-name" href="https://www.w3.org/TR/mediacapture-streams/#idl-def-ConstrainDouble" id="ref-for-idl-def-ConstrainDouble①①①"><c- n>ConstrainDouble</c-></a>    <a class="idl-code" data-link-type="dict-member" data-type="ConstrainDouble    " href="#dom-mediatrackconstraintset-zoom" id="ref-for-dom-mediatrackconstraintset-zoom①"><c- g>zoom</c-></a>;

  <a class="n" data-link-type="idl-name" href="https://www.w3.org/TR/mediacapture-streams/#idl-def-ConstrainBoolean" id="ref-for-idl-def-ConstrainBoolean②"><c- n>ConstrainBoolean</c-></a>   <a class="idl-code" data-link-type="dict-member" data-type="ConstrainBoolean   " href="#dom-mediatrackconstraintset-torch" id="ref-for-dom-mediatrackconstraintset-torch①"><c- g>torch</c-></a>;
};

<c- b>partial</c-> <c- b>dictionary</c-> <a class="idl-code" data-link-type="dictionary" href="https://www.w3.org/TR/mediacapture-streams/#idl-def-MediaTrackSettings" id="ref-for-idl-def-MediaTrackSettings③①"><c- g>MediaTrackSettings</c-></a> {
  <a class="idl-code" data-link-type="interface" href="https://heycam.github.io/webidl/#idl-DOMString" id="ref-for-idl-DOMString⑥①"><c- b>DOMString</c-></a>         <a class="idl-code" data-link-type="dict-member" data-type="DOMString         " href="#dom-mediatracksettings-whitebalancemode" id="ref-for-dom-mediatracksettings-whitebalancemode②"><c- g>whiteBalanceMode</c-></a>;
  <a class="idl-code" data-link-type="interface" href="https://heycam.github.io/webidl/#idl-DOMString" id="ref-for-idl-DOMString⑦①"><c- b>DOMString</c-></a>         <a class="idl-code" data-link-type="dict-member" data-type="DOMString         " href="#dom-mediatracksettings-exposuremode" id="ref-for-dom-mediatracksettings-exposuremode⑦"><c- g>exposureMode</c-></a>;
  <a class="idl-code" data-link-type="interface" href="https://heycam.github.io/webidl/#idl-DOMString" id="ref-for-idl-DOMString⑧①"><c- b>DOMString</c-></a>         <a class="idl-code" data-link-type="dict-member" data-type="DOMString         " href="#dom-mediatracksettings-focusmode" id="ref-for-dom-mediatracksettings-focusmode①"><c- g>focusMode</c-></a>;
  <c- b>sequence</c->&lt;<a class="n" data-link-type="idl-name" href="#dictdef-point2d" id="ref-for-dictdef-point2d①②"><c- n>Point2D</c-></a>> <a class="idl-code" data-link-type="dict-member" data-type="sequence<Point2D> " href="#dom-mediatracksettings-pointsofinterest" id="ref-for-dom-mediatracksettings-pointsofinterest①"><c- g>pointsOfInterest</c-></a>;

  <a class="idl-code" data-link-type="interface" href="https://heycam.github.io/webidl/#idl-double" id="ref-for-idl-double①⓪①"><c- b>double</c-></a>            <a class="idl-code" data-link-type="dict-member" data-type="double            " href="#dom-mediatracksettings-exposurecompensation" id="ref-for-dom-mediatracksettings-exposurecompensation①"><c- g>exposureCompensation</c-></a>;
  <a class="idl-code" data-link-type="interface" href="https://heycam.github.io/webidl/#idl-double" id="ref-for-idl-double①①①"><c- b>double</c-></a>            <a class="idl-code" data-link-type="dict-member" data-type="double            " href="#dom-mediatracksettings-exposuretime" id="ref-for-dom-mediatracksettings-exposuretime①"><c- g>exposureTime</c-></a>;
  <a class="idl-code" data-link-type="interface" href="https://heycam.github.io/webidl/#idl-double" id="ref-for-idl-double①②①"><c- b>double</c-></a>            <a class="idl-code" data-link-type="dict-member" data-type="double            " href="#dom-mediatracksettings-colortemperature" id="ref-for-dom-mediatracksettings-colortemperature①"><c- g>colorTemperature</c-></a>;
  <a class="idl-code" data-link-type="interface" href="https://heycam.github.io/webidl/#idl-double" id="ref-for-idl-double①③①"><c- b>double</c-></a>            <a class="idl-code" data-link-type="dict-member" data-type="double            " href="#dom-mediatracksettings-iso" id="ref-for-dom-mediatracksettings-iso①"><c- g>iso</c-></a>;

  <a class="idl-code" data-link-type="interface" href="https://heycam.github.io/webidl/#idl-double" id="ref-for-idl-double①④①"><c- b>double</c-></a>            <a class="idl-code" data-link-type="dict-member" data-type="double            " href="#dom-mediatracksettings-brightness" id="ref-for-dom-mediatracksettings-brightness①"><c- g>brightness</c-></a>;
  <a class="idl-code" data-link-type="interface" href="https://heycam.github.io/webidl/#idl-double" id="ref-for-idl-double①⑤①"><c- b>double</c-></a>            <a class="idl-code" data-link-type="dict-member" data-type="double            " href="#dom-mediatracksettings-contrast" id="ref-for-dom-mediatracksettings-contrast①"><c- g>contrast</c-></a>;
  <a class="idl-code" data-link-type="interface" href="https://heycam.github.io/webidl/#idl-double" id="ref-for-idl-double①⑥①"><c- b>double</c-></a>            <a class="idl-code" data-link-type="dict-member" data-type="double            " href="#dom-mediatracksettings-saturation" id="ref-for-dom-mediatracksettings-saturation①"><c- g>saturation</c-></a>;
  <a class="idl-code" data-link-type="interface" href="https://heycam.github.io/webidl/#idl-double" id="ref-for-idl-double①⑦①"><c- b>double</c-></a>            <a class="idl-code" data-link-type="dict-member" data-type="double            " href="#dom-mediatracksettings-sharpness" id="ref-for-dom-mediatracksettings-sharpness①"><c- g>sharpness</c-></a>;

  <a class="idl-code" data-link-type="interface" href="https://heycam.github.io/webidl/#idl-double" id="ref-for-idl-double①⑧①"><c- b>double</c-></a>            <a class="idl-code" data-link-type="dict-member" data-type="double            " href="#dom-mediatracksettings-focusdistance" id="ref-for-dom-mediatracksettings-focusdistance①"><c- g>focusDistance</c-></a>;
  <a class="idl-code" data-link-type="interface" href="https://heycam.github.io/webidl/#idl-double" id="ref-for-idl-double①⑨①"><c- b>double</c-></a>            <a class="idl-code" data-link-type="dict-member" data-type="double            " href="#dom-mediatracksettings-pan" id="ref-for-dom-mediatracksettings-pan①"><c- g>pan</c-></a>;
  <a class="idl-code" data-link-type="interface" href="https://heycam.github.io/webidl/#idl-double" id="ref-for-idl-double②⓪①"><c- b>double</c-></a>            <a class="idl-code" data-link-type="dict-member" data-type="double            " href="#dom-mediatracksettings-tilt" id="ref-for-dom-mediatracksettings-tilt①"><c- g>tilt</c-></a>;
  <a class="idl-code" data-link-type="interface" href="https://heycam.github.io/webidl/#idl-double" id="ref-for-idl-double②①①"><c- b>double</c-></a>            <a class="idl-code" data-link-type="dict-member" data-type="double            " href="#dom-mediatracksettings-zoom" id="ref-for-dom-mediatracksettings-zoom①"><c- g>zoom</c-></a>;

  <a class="idl-code" data-link-type="interface" href="https://heycam.github.io/webidl/#idl-boolean" id="ref-for-idl-boolean③⑧①"><c- b>boolean</c-></a>           <a class="idl-code" data-link-type="dict-member" data-type="boolean           " href="#dom-mediatracksettings-torch" id="ref-for-dom-mediatracksettings-torch①"><c- g>torch</c-></a>;
};

<c- b>dictionary</c-> <a href="#dictdef-constrainpoint2dparameters"><code><c- g>ConstrainPoint2DParameters</c-></code></a> {
  <c- b>sequence</c->&lt;<a class="n" data-link-type="idl-name" href="#dictdef-point2d" id="ref-for-dictdef-point2d③①"><c- n>Point2D</c-></a>> <a class="idl-code" data-link-type="dict-member" data-type="sequence<Point2D> " href="#dom-constrainpoint2dparameters-exact" id="ref-for-dom-constrainpoint2dparameters-exact①"><c- g>exact</c-></a>;
  <c- b>sequence</c->&lt;<a class="n" data-link-type="idl-name" href="#dictdef-point2d" id="ref-for-dictdef-point2d④①"><c- n>Point2D</c-></a>> <a class="idl-code" data-link-type="dict-member" data-type="sequence<Point2D> " href="#dom-constrainpoint2dparameters-ideal" id="ref-for-dom-constrainpoint2dparameters-ideal①"><c- g>ideal</c-></a>;
};

<c- b>typedef</c-> (<c- b>sequence</c->&lt;<a class="n" data-link-type="idl-name" href="#dictdef-point2d" id="ref-for-dictdef-point2d⑤①"><c- n>Point2D</c-></a>> <c- b>or</c-> <a class="n" data-link-type="idl-name" href="#dictdef-constrainpoint2dparameters" id="ref-for-dictdef-constrainpoint2dparameters①"><c- n>ConstrainPoint2DParameters</c-></a>) <a href="#typedefdef-constrainpoint2d"><code><c- g>ConstrainPoint2D</c-></code></a>;

<c- b>enum</c-> <a href="#enumdef-meteringmode"><code><c- g>MeteringMode</c-></code></a> {
  <a class="idl-code" data-link-type="enum-value" href="#dom-meteringmode-none" id="ref-for-dom-meteringmode-none①"><c- s>"none"</c-></a>,
  <a class="idl-code" data-link-type="enum-value" href="#dom-meteringmode-manual" id="ref-for-dom-meteringmode-manual④①"><c- s>"manual"</c-></a>,
  <a class="idl-code" data-link-type="enum-value" href="#dom-meteringmode-single-shot" id="ref-for-dom-meteringmode-single-shot③①"><c- s>"single-shot"</c-></a>,
  <a class="idl-code" data-link-type="enum-value" href="#dom-meteringmode-continuous" id="ref-for-dom-meteringmode-continuous③①"><c- s>"continuous"</c-></a>
};

<c- b>dictionary</c-> <a href="#dictdef-point2d"><code><c- g>Point2D</c-></code></a> {
  <a class="idl-code" data-link-type="interface" href="https://heycam.github.io/webidl/#idl-double" id="ref-for-idl-double③④①"><c- b>double</c-></a> <a class="idl-code" data-default="0.0" data-link-type="dict-member" data-type="double " href="#dom-point2d-x" id="ref-for-dom-point2d-x①"><c- g>x</c-></a> = 0.0;
  <a class="idl-code" data-link-type="interface" href="https://heycam.github.io/webidl/#idl-double" id="ref-for-idl-double③⑤①"><c- b>double</c-></a> <a class="idl-code" data-default="0.0" data-link-type="dict-member" data-type="double " href="#dom-point2d-y" id="ref-for-dom-point2d-y①"><c- g>y</c-></a> = 0.0;
};

</pre>
  <aside class="dfn-panel" data-for="imagecapture">
   <b><a href="#imagecapture">#imagecapture</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-imagecapture">9. Extensions</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="dom-imagecapture-takephoto-photosettings-photosettings">
   <b><a href="#dom-imagecapture-takephoto-photosettings-photosettings">#dom-imagecapture-takephoto-photosettings-photosettings</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-dom-imagecapture-takephoto-photosettings-photosettings">3.2. Methods</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="dom-imagecapture-track">
   <b><a href="#dom-imagecapture-track">#dom-imagecapture-track</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-dom-imagecapture-track">3. Image Capture API</a> <a href="#ref-for-dom-imagecapture-track①">(2)</a>
    <li><a href="#ref-for-dom-imagecapture-track②">3.2. Methods</a> <a href="#ref-for-dom-imagecapture-track③">(2)</a> <a href="#ref-for-dom-imagecapture-track④">(3)</a> <a href="#ref-for-dom-imagecapture-track⑤">(4)</a> <a href="#ref-for-dom-imagecapture-track⑥">(5)</a> <a href="#ref-for-dom-imagecapture-track⑦">(6)</a> <a href="#ref-for-dom-imagecapture-track⑧">(7)</a> <a href="#ref-for-dom-imagecapture-track⑨">(8)</a> <a href="#ref-for-dom-imagecapture-track①⓪">(9)</a> <a href="#ref-for-dom-imagecapture-track①①">(10)</a> <a href="#ref-for-dom-imagecapture-track①②">(11)</a> <a href="#ref-for-dom-imagecapture-track①③">(12)</a>
    <li><a href="#ref-for-dom-imagecapture-track①④">9. Extensions</a>
    <li><a href="#ref-for-dom-imagecapture-track①⑤">10. Photo Capabilities and Constrainable Properties</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="dom-imagecapture-imagecapture">
   <b><a href="#dom-imagecapture-imagecapture">#dom-imagecapture-imagecapture</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-dom-imagecapture-imagecapture">3. Image Capture API</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="dom-imagecapture-takephoto">
   <b><a href="#dom-imagecapture-takephoto">#dom-imagecapture-takephoto</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-dom-imagecapture-takephoto">1. Introduction</a> <a href="#ref-for-dom-imagecapture-takephoto①">(2)</a>
    <li><a href="#ref-for-dom-imagecapture-takephoto②">3. Image Capture API</a> <a href="#ref-for-dom-imagecapture-takephoto③">(2)</a>
    <li><a href="#ref-for-dom-imagecapture-takephoto④">3.2. Methods</a> <a href="#ref-for-dom-imagecapture-takephoto⑤">(2)</a> <a href="#ref-for-dom-imagecapture-takephoto⑥">(3)</a>
    <li><a href="#ref-for-dom-imagecapture-takephoto⑦">8.1. Values</a> <a href="#ref-for-dom-imagecapture-takephoto⑧">(2)</a> <a href="#ref-for-dom-imagecapture-takephoto⑨">(3)</a>
    <li><a href="#ref-for-dom-imagecapture-takephoto①⓪">13.1. Update camera zoom and takePhoto()</a>
    <li><a href="#ref-for-dom-imagecapture-takephoto①①">13.4. Update camera focus distance and takePhoto()</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="dom-imagecapture-getphotocapabilities">
   <b><a href="#dom-imagecapture-getphotocapabilities">#dom-imagecapture-getphotocapabilities</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-dom-imagecapture-getphotocapabilities">1. Introduction</a>
    <li><a href="#ref-for-dom-imagecapture-getphotocapabilities①">3. Image Capture API</a>
    <li><a href="#ref-for-dom-imagecapture-getphotocapabilities②">3.2. Methods</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="dom-imagecapture-getphotosettings">
   <b><a href="#dom-imagecapture-getphotosettings">#dom-imagecapture-getphotosettings</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-dom-imagecapture-getphotosettings">1. Introduction</a>
    <li><a href="#ref-for-dom-imagecapture-getphotosettings①">3. Image Capture API</a>
    <li><a href="#ref-for-dom-imagecapture-getphotosettings②">3.2. Methods</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="dom-imagecapture-grabframe">
   <b><a href="#dom-imagecapture-grabframe">#dom-imagecapture-grabframe</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-dom-imagecapture-grabframe">1. Introduction</a>
    <li><a href="#ref-for-dom-imagecapture-grabframe①">3. Image Capture API</a> <a href="#ref-for-dom-imagecapture-grabframe②">(2)</a>
    <li><a href="#ref-for-dom-imagecapture-grabframe③">3.2. Methods</a> <a href="#ref-for-dom-imagecapture-grabframe④">(2)</a> <a href="#ref-for-dom-imagecapture-grabframe⑤">(3)</a>
    <li><a href="#ref-for-dom-imagecapture-grabframe⑥">13.2. Repeated grabbing of a frame with grabFrame()</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="photocapabilities">
   <b><a href="#photocapabilities">#photocapabilities</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-photocapabilities">3. Image Capture API</a>
    <li><a href="#ref-for-photocapabilities①">3.2. Methods</a> <a href="#ref-for-photocapabilities②">(2)</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="dom-photocapabilities-redeyereduction">
   <b><a href="#dom-photocapabilities-redeyereduction">#dom-photocapabilities-redeyereduction</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-dom-photocapabilities-redeyereduction">4. PhotoCapabilities</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="dom-photocapabilities-imageheight">
   <b><a href="#dom-photocapabilities-imageheight">#dom-photocapabilities-imageheight</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-dom-photocapabilities-imageheight">4. PhotoCapabilities</a>
    <li><a href="#ref-for-dom-photocapabilities-imageheight①">4.1. Attributes</a>
    <li><a href="#ref-for-dom-photocapabilities-imageheight②">10. Photo Capabilities and Constrainable Properties</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="dom-photocapabilities-imagewidth">
   <b><a href="#dom-photocapabilities-imagewidth">#dom-photocapabilities-imagewidth</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-dom-photocapabilities-imagewidth">4. PhotoCapabilities</a>
    <li><a href="#ref-for-dom-photocapabilities-imagewidth①">4.1. Attributes</a>
    <li><a href="#ref-for-dom-photocapabilities-imagewidth②">10. Photo Capabilities and Constrainable Properties</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="dom-photocapabilities-filllightmode">
   <b><a href="#dom-photocapabilities-filllightmode">#dom-photocapabilities-filllightmode</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-dom-photocapabilities-filllightmode">4. PhotoCapabilities</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="dictdef-photosettings">
   <b><a href="#dictdef-photosettings">#dictdef-photosettings</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-dictdef-photosettings">1. Introduction</a>
    <li><a href="#ref-for-dictdef-photosettings①">3. Image Capture API</a> <a href="#ref-for-dictdef-photosettings②">(2)</a>
    <li><a href="#ref-for-dictdef-photosettings③">3.2. Methods</a> <a href="#ref-for-dictdef-photosettings④">(2)</a> <a href="#ref-for-dictdef-photosettings⑤">(3)</a> <a href="#ref-for-dictdef-photosettings⑥">(4)</a> <a href="#ref-for-dictdef-photosettings⑦">(5)</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="dom-photosettings-redeyereduction">
   <b><a href="#dom-photosettings-redeyereduction">#dom-photosettings-redeyereduction</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-dom-photosettings-redeyereduction">5. PhotoSettings</a>
    <li><a href="#ref-for-dom-photosettings-redeyereduction①">7.1. Values</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="dom-photosettings-imagewidth">
   <b><a href="#dom-photosettings-imagewidth">#dom-photosettings-imagewidth</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-dom-photosettings-imagewidth">5. PhotoSettings</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="dom-photosettings-imageheight">
   <b><a href="#dom-photosettings-imageheight">#dom-photosettings-imageheight</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-dom-photosettings-imageheight">5. PhotoSettings</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="dom-photosettings-filllightmode">
   <b><a href="#dom-photosettings-filllightmode">#dom-photosettings-filllightmode</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-dom-photosettings-filllightmode">5. PhotoSettings</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="mediasettingsrange">
   <b><a href="#mediasettingsrange">#mediasettingsrange</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-mediasettingsrange">4. PhotoCapabilities</a> <a href="#ref-for-mediasettingsrange①">(2)</a>
    <li><a href="#ref-for-mediasettingsrange②">4.1. Attributes</a> <a href="#ref-for-mediasettingsrange③">(2)</a>
    <li><a href="#ref-for-mediasettingsrange④">6. MediaSettingsRange</a>
    <li><a href="#ref-for-mediasettingsrange⑤">9.2. MediaTrackCapabilities dictionary</a> <a href="#ref-for-mediasettingsrange⑥">(2)</a> <a href="#ref-for-mediasettingsrange⑦">(3)</a> <a href="#ref-for-mediasettingsrange⑧">(4)</a> <a href="#ref-for-mediasettingsrange⑨">(5)</a> <a href="#ref-for-mediasettingsrange①⓪">(6)</a> <a href="#ref-for-mediasettingsrange①①">(7)</a> <a href="#ref-for-mediasettingsrange①②">(8)</a> <a href="#ref-for-mediasettingsrange①③">(9)</a> <a href="#ref-for-mediasettingsrange①④">(10)</a> <a href="#ref-for-mediasettingsrange①⑤">(11)</a> <a href="#ref-for-mediasettingsrange①⑥">(12)</a>
    <li><a href="#ref-for-mediasettingsrange①⑦">9.2.1. Members</a> <a href="#ref-for-mediasettingsrange①⑧">(2)</a> <a href="#ref-for-mediasettingsrange①⑨">(3)</a> <a href="#ref-for-mediasettingsrange②⓪">(4)</a> <a href="#ref-for-mediasettingsrange②①">(5)</a> <a href="#ref-for-mediasettingsrange②②">(6)</a> <a href="#ref-for-mediasettingsrange②③">(7)</a> <a href="#ref-for-mediasettingsrange②④">(8)</a> <a href="#ref-for-mediasettingsrange②⑤">(9)</a> <a href="#ref-for-mediasettingsrange②⑥">(10)</a> <a href="#ref-for-mediasettingsrange②⑦">(11)</a> <a href="#ref-for-mediasettingsrange②⑧">(12)</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="dom-mediasettingsrange-max">
   <b><a href="#dom-mediasettingsrange-max">#dom-mediasettingsrange-max</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-dom-mediasettingsrange-max">6. MediaSettingsRange</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="dom-mediasettingsrange-min">
   <b><a href="#dom-mediasettingsrange-min">#dom-mediasettingsrange-min</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-dom-mediasettingsrange-min">6. MediaSettingsRange</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="dom-mediasettingsrange-step">
   <b><a href="#dom-mediasettingsrange-step">#dom-mediasettingsrange-step</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-dom-mediasettingsrange-step">6. MediaSettingsRange</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="enumdef-redeyereduction">
   <b><a href="#enumdef-redeyereduction">#enumdef-redeyereduction</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-enumdef-redeyereduction">4. PhotoCapabilities</a>
    <li><a href="#ref-for-enumdef-redeyereduction①">4.1. Attributes</a>
    <li><a href="#ref-for-enumdef-redeyereduction②">7. RedEyeReduction</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="dom-redeyereduction-never">
   <b><a href="#dom-redeyereduction-never">#dom-redeyereduction-never</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-dom-redeyereduction-never">7. RedEyeReduction</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="dom-redeyereduction-always">
   <b><a href="#dom-redeyereduction-always">#dom-redeyereduction-always</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-dom-redeyereduction-always">7. RedEyeReduction</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="dom-redeyereduction-controllable">
   <b><a href="#dom-redeyereduction-controllable">#dom-redeyereduction-controllable</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-dom-redeyereduction-controllable">7. RedEyeReduction</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="enumdef-filllightmode">
   <b><a href="#enumdef-filllightmode">#enumdef-filllightmode</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-enumdef-filllightmode">4. PhotoCapabilities</a>
    <li><a href="#ref-for-enumdef-filllightmode①">4.1. Attributes</a>
    <li><a href="#ref-for-enumdef-filllightmode②">5. PhotoSettings</a>
    <li><a href="#ref-for-enumdef-filllightmode③">5.1. Members</a>
    <li><a href="#ref-for-enumdef-filllightmode④">8. FillLightMode</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="dom-filllightmode-auto">
   <b><a href="#dom-filllightmode-auto">#dom-filllightmode-auto</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-dom-filllightmode-auto">8. FillLightMode</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="dom-filllightmode-off">
   <b><a href="#dom-filllightmode-off">#dom-filllightmode-off</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-dom-filllightmode-off">8. FillLightMode</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="dom-filllightmode-flash">
   <b><a href="#dom-filllightmode-flash">#dom-filllightmode-flash</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-dom-filllightmode-flash">8. FillLightMode</a>
    <li><a href="#ref-for-dom-filllightmode-flash①">8.1. Values</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="dom-mediatracksupportedconstraints-whitebalancemode">
   <b><a href="#dom-mediatracksupportedconstraints-whitebalancemode">#dom-mediatracksupportedconstraints-whitebalancemode</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-dom-mediatracksupportedconstraints-whitebalancemode">9.1. MediaTrackSupportedConstraints dictionary</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="dom-mediatracksupportedconstraints-colortemperature">
   <b><a href="#dom-mediatracksupportedconstraints-colortemperature">#dom-mediatracksupportedconstraints-colortemperature</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-dom-mediatracksupportedconstraints-colortemperature">9.1. MediaTrackSupportedConstraints dictionary</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="dom-mediatracksupportedconstraints-exposuremode">
   <b><a href="#dom-mediatracksupportedconstraints-exposuremode">#dom-mediatracksupportedconstraints-exposuremode</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-dom-mediatracksupportedconstraints-exposuremode">9.1. MediaTrackSupportedConstraints dictionary</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="dom-mediatracksupportedconstraints-exposurecompensation">
   <b><a href="#dom-mediatracksupportedconstraints-exposurecompensation">#dom-mediatracksupportedconstraints-exposurecompensation</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-dom-mediatracksupportedconstraints-exposurecompensation">9.1. MediaTrackSupportedConstraints dictionary</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="dom-mediatracksupportedconstraints-exposuretime">
   <b><a href="#dom-mediatracksupportedconstraints-exposuretime">#dom-mediatracksupportedconstraints-exposuretime</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-dom-mediatracksupportedconstraints-exposuretime">9.1. MediaTrackSupportedConstraints dictionary</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="dom-mediatracksupportedconstraints-iso">
   <b><a href="#dom-mediatracksupportedconstraints-iso">#dom-mediatracksupportedconstraints-iso</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-dom-mediatracksupportedconstraints-iso">9.1. MediaTrackSupportedConstraints dictionary</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="dom-mediatracksupportedconstraints-focusmode">
   <b><a href="#dom-mediatracksupportedconstraints-focusmode">#dom-mediatracksupportedconstraints-focusmode</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-dom-mediatracksupportedconstraints-focusmode">9.1. MediaTrackSupportedConstraints dictionary</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="dom-mediatracksupportedconstraints-pointsofinterest">
   <b><a href="#dom-mediatracksupportedconstraints-pointsofinterest">#dom-mediatracksupportedconstraints-pointsofinterest</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-dom-mediatracksupportedconstraints-pointsofinterest">9.1. MediaTrackSupportedConstraints dictionary</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="dom-mediatracksupportedconstraints-brightness">
   <b><a href="#dom-mediatracksupportedconstraints-brightness">#dom-mediatracksupportedconstraints-brightness</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-dom-mediatracksupportedconstraints-brightness">9.1. MediaTrackSupportedConstraints dictionary</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="dom-mediatracksupportedconstraints-contrast">
   <b><a href="#dom-mediatracksupportedconstraints-contrast">#dom-mediatracksupportedconstraints-contrast</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-dom-mediatracksupportedconstraints-contrast">9.1. MediaTrackSupportedConstraints dictionary</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="dom-mediatracksupportedconstraints-pan">
   <b><a href="#dom-mediatracksupportedconstraints-pan">#dom-mediatracksupportedconstraints-pan</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-dom-mediatracksupportedconstraints-pan">9.1. MediaTrackSupportedConstraints dictionary</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="dom-mediatracksupportedconstraints-saturation">
   <b><a href="#dom-mediatracksupportedconstraints-saturation">#dom-mediatracksupportedconstraints-saturation</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-dom-mediatracksupportedconstraints-saturation">9.1. MediaTrackSupportedConstraints dictionary</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="dom-mediatracksupportedconstraints-sharpness">
   <b><a href="#dom-mediatracksupportedconstraints-sharpness">#dom-mediatracksupportedconstraints-sharpness</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-dom-mediatracksupportedconstraints-sharpness">9.1. MediaTrackSupportedConstraints dictionary</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="dom-mediatracksupportedconstraints-focusdistance">
   <b><a href="#dom-mediatracksupportedconstraints-focusdistance">#dom-mediatracksupportedconstraints-focusdistance</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-dom-mediatracksupportedconstraints-focusdistance">9.1. MediaTrackSupportedConstraints dictionary</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="dom-mediatracksupportedconstraints-tilt">
   <b><a href="#dom-mediatracksupportedconstraints-tilt">#dom-mediatracksupportedconstraints-tilt</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-dom-mediatracksupportedconstraints-tilt">9.1. MediaTrackSupportedConstraints dictionary</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="dom-mediatracksupportedconstraints-zoom">
   <b><a href="#dom-mediatracksupportedconstraints-zoom">#dom-mediatracksupportedconstraints-zoom</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-dom-mediatracksupportedconstraints-zoom">9.1. MediaTrackSupportedConstraints dictionary</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="dom-mediatracksupportedconstraints-torch">
   <b><a href="#dom-mediatracksupportedconstraints-torch">#dom-mediatracksupportedconstraints-torch</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-dom-mediatracksupportedconstraints-torch">9.1. MediaTrackSupportedConstraints dictionary</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="dom-mediatrackcapabilities-whitebalancemode">
   <b><a href="#dom-mediatrackcapabilities-whitebalancemode">#dom-mediatrackcapabilities-whitebalancemode</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-dom-mediatrackcapabilities-whitebalancemode">9.2. MediaTrackCapabilities dictionary</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="dom-mediatrackcapabilities-colortemperature">
   <b><a href="#dom-mediatrackcapabilities-colortemperature">#dom-mediatrackcapabilities-colortemperature</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-dom-mediatrackcapabilities-colortemperature">9.2. MediaTrackCapabilities dictionary</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="dom-mediatrackcapabilities-exposuremode">
   <b><a href="#dom-mediatrackcapabilities-exposuremode">#dom-mediatrackcapabilities-exposuremode</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-dom-mediatrackcapabilities-exposuremode">9.2. MediaTrackCapabilities dictionary</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="dom-mediatrackcapabilities-exposurecompensation">
   <b><a href="#dom-mediatrackcapabilities-exposurecompensation">#dom-mediatrackcapabilities-exposurecompensation</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-dom-mediatrackcapabilities-exposurecompensation">9.2. MediaTrackCapabilities dictionary</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="dom-mediatrackcapabilities-exposuretime">
   <b><a href="#dom-mediatrackcapabilities-exposuretime">#dom-mediatrackcapabilities-exposuretime</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-dom-mediatrackcapabilities-exposuretime">9.2. MediaTrackCapabilities dictionary</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="dom-mediatrackcapabilities-iso">
   <b><a href="#dom-mediatrackcapabilities-iso">#dom-mediatrackcapabilities-iso</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-dom-mediatrackcapabilities-iso">9.2. MediaTrackCapabilities dictionary</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="dom-mediatrackcapabilities-focusmode">
   <b><a href="#dom-mediatrackcapabilities-focusmode">#dom-mediatrackcapabilities-focusmode</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-dom-mediatrackcapabilities-focusmode">9.2. MediaTrackCapabilities dictionary</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="dom-mediatrackcapabilities-brightness">
   <b><a href="#dom-mediatrackcapabilities-brightness">#dom-mediatrackcapabilities-brightness</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-dom-mediatrackcapabilities-brightness">9.2. MediaTrackCapabilities dictionary</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="dom-mediatrackcapabilities-contrast">
   <b><a href="#dom-mediatrackcapabilities-contrast">#dom-mediatrackcapabilities-contrast</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-dom-mediatrackcapabilities-contrast">9.2. MediaTrackCapabilities dictionary</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="dom-mediatrackcapabilities-pan">
   <b><a href="#dom-mediatrackcapabilities-pan">#dom-mediatrackcapabilities-pan</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-dom-mediatrackcapabilities-pan">9.2. MediaTrackCapabilities dictionary</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="dom-mediatrackcapabilities-saturation">
   <b><a href="#dom-mediatrackcapabilities-saturation">#dom-mediatrackcapabilities-saturation</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-dom-mediatrackcapabilities-saturation">9.2. MediaTrackCapabilities dictionary</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="dom-mediatrackcapabilities-sharpness">
   <b><a href="#dom-mediatrackcapabilities-sharpness">#dom-mediatrackcapabilities-sharpness</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-dom-mediatrackcapabilities-sharpness">9.2. MediaTrackCapabilities dictionary</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="dom-mediatrackcapabilities-focusdistance">
   <b><a href="#dom-mediatrackcapabilities-focusdistance">#dom-mediatrackcapabilities-focusdistance</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-dom-mediatrackcapabilities-focusdistance">9.2. MediaTrackCapabilities dictionary</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="dom-mediatrackcapabilities-tilt">
   <b><a href="#dom-mediatrackcapabilities-tilt">#dom-mediatrackcapabilities-tilt</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-dom-mediatrackcapabilities-tilt">9.2. MediaTrackCapabilities dictionary</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="dom-mediatrackcapabilities-zoom">
   <b><a href="#dom-mediatrackcapabilities-zoom">#dom-mediatrackcapabilities-zoom</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-dom-mediatrackcapabilities-zoom">9.2. MediaTrackCapabilities dictionary</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="dom-mediatrackcapabilities-torch">
   <b><a href="#dom-mediatrackcapabilities-torch">#dom-mediatrackcapabilities-torch</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-dom-mediatrackcapabilities-torch">9.2. MediaTrackCapabilities dictionary</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="dom-mediatrackconstraintset-whitebalancemode">
   <b><a href="#dom-mediatrackconstraintset-whitebalancemode">#dom-mediatrackconstraintset-whitebalancemode</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-dom-mediatrackconstraintset-whitebalancemode">9.3. MediaTrackConstraintSet dictionary</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="dom-mediatrackconstraintset-exposuremode">
   <b><a href="#dom-mediatrackconstraintset-exposuremode">#dom-mediatrackconstraintset-exposuremode</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-dom-mediatrackconstraintset-exposuremode">9.3. MediaTrackConstraintSet dictionary</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="dom-mediatrackconstraintset-focusmode">
   <b><a href="#dom-mediatrackconstraintset-focusmode">#dom-mediatrackconstraintset-focusmode</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-dom-mediatrackconstraintset-focusmode">9.3. MediaTrackConstraintSet dictionary</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="dom-mediatrackconstraintset-colortemperature">
   <b><a href="#dom-mediatrackconstraintset-colortemperature">#dom-mediatrackconstraintset-colortemperature</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-dom-mediatrackconstraintset-colortemperature">9.3. MediaTrackConstraintSet dictionary</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="dom-mediatrackconstraintset-exposurecompensation">
   <b><a href="#dom-mediatrackconstraintset-exposurecompensation">#dom-mediatrackconstraintset-exposurecompensation</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-dom-mediatrackconstraintset-exposurecompensation">9.3. MediaTrackConstraintSet dictionary</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="dom-mediatrackconstraintset-exposuretime">
   <b><a href="#dom-mediatrackconstraintset-exposuretime">#dom-mediatrackconstraintset-exposuretime</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-dom-mediatrackconstraintset-exposuretime">9.3. MediaTrackConstraintSet dictionary</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="dom-mediatrackconstraintset-iso">
   <b><a href="#dom-mediatrackconstraintset-iso">#dom-mediatrackconstraintset-iso</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-dom-mediatrackconstraintset-iso">9.3. MediaTrackConstraintSet dictionary</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="dom-mediatrackconstraintset-pointsofinterest">
   <b><a href="#dom-mediatrackconstraintset-pointsofinterest">#dom-mediatrackconstraintset-pointsofinterest</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-dom-mediatrackconstraintset-pointsofinterest">9.3. MediaTrackConstraintSet dictionary</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="dom-mediatrackconstraintset-brightness">
   <b><a href="#dom-mediatrackconstraintset-brightness">#dom-mediatrackconstraintset-brightness</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-dom-mediatrackconstraintset-brightness">9.3. MediaTrackConstraintSet dictionary</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="dom-mediatrackconstraintset-contrast">
   <b><a href="#dom-mediatrackconstraintset-contrast">#dom-mediatrackconstraintset-contrast</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-dom-mediatrackconstraintset-contrast">9.3. MediaTrackConstraintSet dictionary</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="dom-mediatrackconstraintset-pan">
   <b><a href="#dom-mediatrackconstraintset-pan">#dom-mediatrackconstraintset-pan</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-dom-mediatrackconstraintset-pan">9.3. MediaTrackConstraintSet dictionary</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="dom-mediatrackconstraintset-saturation">
   <b><a href="#dom-mediatrackconstraintset-saturation">#dom-mediatrackconstraintset-saturation</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-dom-mediatrackconstraintset-saturation">9.3. MediaTrackConstraintSet dictionary</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="dom-mediatrackconstraintset-sharpness">
   <b><a href="#dom-mediatrackconstraintset-sharpness">#dom-mediatrackconstraintset-sharpness</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-dom-mediatrackconstraintset-sharpness">9.3. MediaTrackConstraintSet dictionary</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="dom-mediatrackconstraintset-focusdistance">
   <b><a href="#dom-mediatrackconstraintset-focusdistance">#dom-mediatrackconstraintset-focusdistance</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-dom-mediatrackconstraintset-focusdistance">9.3. MediaTrackConstraintSet dictionary</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="dom-mediatrackconstraintset-tilt">
   <b><a href="#dom-mediatrackconstraintset-tilt">#dom-mediatrackconstraintset-tilt</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-dom-mediatrackconstraintset-tilt">9.3. MediaTrackConstraintSet dictionary</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="dom-mediatrackconstraintset-zoom">
   <b><a href="#dom-mediatrackconstraintset-zoom">#dom-mediatrackconstraintset-zoom</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-dom-mediatrackconstraintset-zoom">9.3. MediaTrackConstraintSet dictionary</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="dom-mediatrackconstraintset-torch">
   <b><a href="#dom-mediatrackconstraintset-torch">#dom-mediatrackconstraintset-torch</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-dom-mediatrackconstraintset-torch">9.3. MediaTrackConstraintSet dictionary</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="dom-mediatracksettings-whitebalancemode">
   <b><a href="#dom-mediatracksettings-whitebalancemode">#dom-mediatracksettings-whitebalancemode</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-dom-mediatracksettings-whitebalancemode">9.4. MediaTrackSettings dictionary</a>
    <li><a href="#ref-for-dom-mediatracksettings-whitebalancemode①">9.4.1. Members</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="dom-mediatracksettings-exposuremode">
   <b><a href="#dom-mediatracksettings-exposuremode">#dom-mediatracksettings-exposuremode</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-dom-mediatracksettings-exposuremode">9.4. MediaTrackSettings dictionary</a>
    <li><a href="#ref-for-dom-mediatracksettings-exposuremode①">9.4.1. Members</a> <a href="#ref-for-dom-mediatracksettings-exposuremode②">(2)</a>
    <li><a href="#ref-for-dom-mediatracksettings-exposuremode③">10. Photo Capabilities and Constrainable Properties</a> <a href="#ref-for-dom-mediatracksettings-exposuremode④">(2)</a> <a href="#ref-for-dom-mediatracksettings-exposuremode⑤">(3)</a> <a href="#ref-for-dom-mediatracksettings-exposuremode⑥">(4)</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="dom-mediatracksettings-colortemperature">
   <b><a href="#dom-mediatracksettings-colortemperature">#dom-mediatracksettings-colortemperature</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-dom-mediatracksettings-colortemperature">9.4. MediaTrackSettings dictionary</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="dom-mediatracksettings-exposurecompensation">
   <b><a href="#dom-mediatracksettings-exposurecompensation">#dom-mediatracksettings-exposurecompensation</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-dom-mediatracksettings-exposurecompensation">9.4. MediaTrackSettings dictionary</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="dom-mediatracksettings-exposuretime">
   <b><a href="#dom-mediatracksettings-exposuretime">#dom-mediatracksettings-exposuretime</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-dom-mediatracksettings-exposuretime">9.4. MediaTrackSettings dictionary</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="dom-mediatracksettings-iso">
   <b><a href="#dom-mediatracksettings-iso">#dom-mediatracksettings-iso</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-dom-mediatracksettings-iso">9.4. MediaTrackSettings dictionary</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="dom-mediatracksettings-focusmode">
   <b><a href="#dom-mediatracksettings-focusmode">#dom-mediatracksettings-focusmode</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-dom-mediatracksettings-focusmode">9.4. MediaTrackSettings dictionary</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="dom-mediatracksettings-pointsofinterest">
   <b><a href="#dom-mediatracksettings-pointsofinterest">#dom-mediatracksettings-pointsofinterest</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-dom-mediatracksettings-pointsofinterest">9.4. MediaTrackSettings dictionary</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="dom-mediatracksettings-brightness">
   <b><a href="#dom-mediatracksettings-brightness">#dom-mediatracksettings-brightness</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-dom-mediatracksettings-brightness">9.4. MediaTrackSettings dictionary</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="dom-mediatracksettings-contrast">
   <b><a href="#dom-mediatracksettings-contrast">#dom-mediatracksettings-contrast</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-dom-mediatracksettings-contrast">9.4. MediaTrackSettings dictionary</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="dom-mediatracksettings-pan">
   <b><a href="#dom-mediatracksettings-pan">#dom-mediatracksettings-pan</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-dom-mediatracksettings-pan">9.4. MediaTrackSettings dictionary</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="dom-mediatracksettings-saturation">
   <b><a href="#dom-mediatracksettings-saturation">#dom-mediatracksettings-saturation</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-dom-mediatracksettings-saturation">9.4. MediaTrackSettings dictionary</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="dom-mediatracksettings-sharpness">
   <b><a href="#dom-mediatracksettings-sharpness">#dom-mediatracksettings-sharpness</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-dom-mediatracksettings-sharpness">9.4. MediaTrackSettings dictionary</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="dom-mediatracksettings-focusdistance">
   <b><a href="#dom-mediatracksettings-focusdistance">#dom-mediatracksettings-focusdistance</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-dom-mediatracksettings-focusdistance">9.4. MediaTrackSettings dictionary</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="dom-mediatracksettings-tilt">
   <b><a href="#dom-mediatracksettings-tilt">#dom-mediatracksettings-tilt</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-dom-mediatracksettings-tilt">9.4. MediaTrackSettings dictionary</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="dom-mediatracksettings-zoom">
   <b><a href="#dom-mediatracksettings-zoom">#dom-mediatracksettings-zoom</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-dom-mediatracksettings-zoom">9.4. MediaTrackSettings dictionary</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="dom-mediatracksettings-torch">
   <b><a href="#dom-mediatracksettings-torch">#dom-mediatracksettings-torch</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-dom-mediatracksettings-torch">9.4. MediaTrackSettings dictionary</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="dictdef-constrainpoint2dparameters">
   <b><a href="#dictdef-constrainpoint2dparameters">#dictdef-constrainpoint2dparameters</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-dictdef-constrainpoint2dparameters">9.5. Additional Constrainable Properties</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="typedefdef-constrainpoint2d">
   <b><a href="#typedefdef-constrainpoint2d">#typedefdef-constrainpoint2d</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-typedefdef-constrainpoint2d">9.3. MediaTrackConstraintSet dictionary</a>
    <li><a href="#ref-for-typedefdef-constrainpoint2d①">9.3.1. Members</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="dom-constrainpoint2dparameters-exact">
   <b><a href="#dom-constrainpoint2dparameters-exact">#dom-constrainpoint2dparameters-exact</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-dom-constrainpoint2dparameters-exact">9.5. Additional Constrainable Properties</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="dom-constrainpoint2dparameters-ideal">
   <b><a href="#dom-constrainpoint2dparameters-ideal">#dom-constrainpoint2dparameters-ideal</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-dom-constrainpoint2dparameters-ideal">9.5. Additional Constrainable Properties</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="white-balance-mode">
   <b><a href="#white-balance-mode">#white-balance-mode</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-white-balance-mode">9.1.1. Members</a>
    <li><a href="#ref-for-white-balance-mode①">9.2.1. Members</a>
    <li><a href="#ref-for-white-balance-mode②">9.3.1. Members</a>
    <li><a href="#ref-for-white-balance-mode③">9.4.1. Members</a>
    <li><a href="#ref-for-white-balance-mode④">10. Photo Capabilities and Constrainable Properties</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="color-temperature">
   <b><a href="#color-temperature">#color-temperature</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-color-temperature">9.1.1. Members</a>
    <li><a href="#ref-for-color-temperature①">9.2.1. Members</a>
    <li><a href="#ref-for-color-temperature②">9.3.1. Members</a>
    <li><a href="#ref-for-color-temperature③">9.4.1. Members</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="exposure">
   <b><a href="#exposure">#exposure</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-exposure">9.1.1. Members</a>
    <li><a href="#ref-for-exposure①">9.2.1. Members</a>
    <li><a href="#ref-for-exposure②">9.3.1. Members</a>
    <li><a href="#ref-for-exposure③">9.4.1. Members</a>
    <li><a href="#ref-for-exposure④">10. Photo Capabilities and Constrainable Properties</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="focus-mode">
   <b><a href="#focus-mode">#focus-mode</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-focus-mode">9.1.1. Members</a>
    <li><a href="#ref-for-focus-mode①">9.2.1. Members</a>
    <li><a href="#ref-for-focus-mode②">9.3.1. Members</a>
    <li><a href="#ref-for-focus-mode③">9.4.1. Members</a>
    <li><a href="#ref-for-focus-mode④">10. Photo Capabilities and Constrainable Properties</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="points-of-interest">
   <b><a href="#points-of-interest">#points-of-interest</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-points-of-interest">9.1.1. Members</a>
    <li><a href="#ref-for-points-of-interest①">9.3.1. Members</a>
    <li><a href="#ref-for-points-of-interest②">9.4.1. Members</a>
    <li><a href="#ref-for-points-of-interest③">9.5.1. Members</a> <a href="#ref-for-points-of-interest④">(2)</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="exposure-compensation">
   <b><a href="#exposure-compensation">#exposure-compensation</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-exposure-compensation">9.1.1. Members</a>
    <li><a href="#ref-for-exposure-compensation①">9.2.1. Members</a>
    <li><a href="#ref-for-exposure-compensation②">9.3.1. Members</a>
    <li><a href="#ref-for-exposure-compensation③">9.4.1. Members</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="exposure-time">
   <b><a href="#exposure-time">#exposure-time</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-exposure-time">9.1.1. Members</a>
    <li><a href="#ref-for-exposure-time①">9.2.1. Members</a>
    <li><a href="#ref-for-exposure-time②">9.3.1. Members</a>
    <li><a href="#ref-for-exposure-time③">9.4.1. Members</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="iso">
   <b><a href="#iso">#iso</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-iso">9.1.1. Members</a>
    <li><a href="#ref-for-iso①">9.2.1. Members</a>
    <li><a href="#ref-for-iso②">9.3.1. Members</a>
    <li><a href="#ref-for-iso③">9.4.1. Members</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="red-eye-reduction">
   <b><a href="#red-eye-reduction">#red-eye-reduction</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-red-eye-reduction">4.1. Attributes</a>
    <li><a href="#ref-for-red-eye-reduction①">5.1. Members</a>
    <li><a href="#ref-for-red-eye-reduction②">7.1. Values</a> <a href="#ref-for-red-eye-reduction③">(2)</a> <a href="#ref-for-red-eye-reduction④">(3)</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="brightness">
   <b><a href="#brightness">#brightness</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-brightness">9.1.1. Members</a>
    <li><a href="#ref-for-brightness①">9.2.1. Members</a>
    <li><a href="#ref-for-brightness②">9.3.1. Members</a>
    <li><a href="#ref-for-brightness③">9.4.1. Members</a>
    <li><a href="#ref-for-brightness④">10. Photo Capabilities and Constrainable Properties</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="contrast">
   <b><a href="#contrast">#contrast</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-contrast">9.1.1. Members</a>
    <li><a href="#ref-for-contrast①">9.2.1. Members</a>
    <li><a href="#ref-for-contrast②">9.3.1. Members</a>
    <li><a href="#ref-for-contrast③">9.4.1. Members</a>
    <li><a href="#ref-for-contrast④">10. Photo Capabilities and Constrainable Properties</a> <a href="#ref-for-contrast⑤">(2)</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="saturation">
   <b><a href="#saturation">#saturation</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-saturation">9.1.1. Members</a>
    <li><a href="#ref-for-saturation①">9.2.1. Members</a>
    <li><a href="#ref-for-saturation②">9.3.1. Members</a>
    <li><a href="#ref-for-saturation③">9.4.1. Members</a>
    <li><a href="#ref-for-saturation④">10. Photo Capabilities and Constrainable Properties</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="sharpness">
   <b><a href="#sharpness">#sharpness</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-sharpness">9.1.1. Members</a>
    <li><a href="#ref-for-sharpness①">9.2.1. Members</a>
    <li><a href="#ref-for-sharpness②">9.3.1. Members</a>
    <li><a href="#ref-for-sharpness③">9.4.1. Members</a>
    <li><a href="#ref-for-sharpness④">10. Photo Capabilities and Constrainable Properties</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="image-width">
   <b><a href="#image-width">#image-width</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-image-width">4.1. Attributes</a>
    <li><a href="#ref-for-image-width①">5.1. Members</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="image-height">
   <b><a href="#image-height">#image-height</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-image-height">4.1. Attributes</a>
    <li><a href="#ref-for-image-height①">5.1. Members</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="focus-distance">
   <b><a href="#focus-distance">#focus-distance</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-focus-distance">9.1.1. Members</a>
    <li><a href="#ref-for-focus-distance①">9.2.1. Members</a>
    <li><a href="#ref-for-focus-distance②">9.3.1. Members</a>
    <li><a href="#ref-for-focus-distance③">9.4.1. Members</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="pan">
   <b><a href="#pan">#pan</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-pan">9.1.1. Members</a>
    <li><a href="#ref-for-pan①">9.2.1. Members</a>
    <li><a href="#ref-for-pan②">9.3.1. Members</a>
    <li><a href="#ref-for-pan③">9.4.1. Members</a>
    <li><a href="#ref-for-pan④">10. Photo Capabilities and Constrainable Properties</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="tilt">
   <b><a href="#tilt">#tilt</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-tilt">9.1.1. Members</a>
    <li><a href="#ref-for-tilt①">9.2.1. Members</a>
    <li><a href="#ref-for-tilt②">9.3.1. Members</a>
    <li><a href="#ref-for-tilt③">9.4.1. Members</a>
    <li><a href="#ref-for-tilt④">10. Photo Capabilities and Constrainable Properties</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="zoom">
   <b><a href="#zoom">#zoom</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-zoom">9.1.1. Members</a>
    <li><a href="#ref-for-zoom①">9.2.1. Members</a>
    <li><a href="#ref-for-zoom②">9.3. MediaTrackConstraintSet dictionary</a>
    <li><a href="#ref-for-zoom③">9.3.1. Members</a>
    <li><a href="#ref-for-zoom④">9.4.1. Members</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="fill-light-mode">
   <b><a href="#fill-light-mode">#fill-light-mode</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-fill-light-mode">4.1. Attributes</a>
    <li><a href="#ref-for-fill-light-mode①">5.1. Members</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="torch">
   <b><a href="#torch">#torch</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-torch">9.1.1. Members</a>
    <li><a href="#ref-for-torch①">9.2.1. Members</a>
    <li><a href="#ref-for-torch②">9.3.1. Members</a>
    <li><a href="#ref-for-torch③">9.4.1. Members</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="enumdef-meteringmode">
   <b><a href="#enumdef-meteringmode">#enumdef-meteringmode</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-enumdef-meteringmode">9.2.1. Members</a> <a href="#ref-for-enumdef-meteringmode①">(2)</a> <a href="#ref-for-enumdef-meteringmode②">(3)</a>
    <li><a href="#ref-for-enumdef-meteringmode③">9.3.1. Members</a> <a href="#ref-for-enumdef-meteringmode④">(2)</a> <a href="#ref-for-enumdef-meteringmode⑤">(3)</a>
    <li><a href="#ref-for-enumdef-meteringmode⑥">9.4.1. Members</a> <a href="#ref-for-enumdef-meteringmode⑦">(2)</a> <a href="#ref-for-enumdef-meteringmode⑧">(3)</a>
    <li><a href="#ref-for-enumdef-meteringmode⑨">11. MeteringMode</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="dom-meteringmode-none">
   <b><a href="#dom-meteringmode-none">#dom-meteringmode-none</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-dom-meteringmode-none">11. MeteringMode</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="dom-meteringmode-manual">
   <b><a href="#dom-meteringmode-manual">#dom-meteringmode-manual</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-dom-meteringmode-manual">9.4.1. Members</a> <a href="#ref-for-dom-meteringmode-manual①">(2)</a>
    <li><a href="#ref-for-dom-meteringmode-manual②">10. Photo Capabilities and Constrainable Properties</a> <a href="#ref-for-dom-meteringmode-manual③">(2)</a>
    <li><a href="#ref-for-dom-meteringmode-manual④">11. MeteringMode</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="dom-meteringmode-single-shot">
   <b><a href="#dom-meteringmode-single-shot">#dom-meteringmode-single-shot</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-dom-meteringmode-single-shot">9.4.1. Members</a>
    <li><a href="#ref-for-dom-meteringmode-single-shot①">10. Photo Capabilities and Constrainable Properties</a> <a href="#ref-for-dom-meteringmode-single-shot②">(2)</a>
    <li><a href="#ref-for-dom-meteringmode-single-shot③">11. MeteringMode</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="dom-meteringmode-continuous">
   <b><a href="#dom-meteringmode-continuous">#dom-meteringmode-continuous</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-dom-meteringmode-continuous">9.4.1. Members</a>
    <li><a href="#ref-for-dom-meteringmode-continuous①">10. Photo Capabilities and Constrainable Properties</a> <a href="#ref-for-dom-meteringmode-continuous②">(2)</a>
    <li><a href="#ref-for-dom-meteringmode-continuous③">11. MeteringMode</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="dictdef-point2d">
   <b><a href="#dictdef-point2d">#dictdef-point2d</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-dictdef-point2d">9.4. MediaTrackSettings dictionary</a>
    <li><a href="#ref-for-dictdef-point2d①">9.4.1. Members</a> <a href="#ref-for-dictdef-point2d②">(2)</a>
    <li><a href="#ref-for-dictdef-point2d③">9.5. Additional Constrainable Properties</a> <a href="#ref-for-dictdef-point2d④">(2)</a> <a href="#ref-for-dictdef-point2d⑤">(3)</a>
    <li><a href="#ref-for-dictdef-point2d⑥">9.5.1. Members</a> <a href="#ref-for-dictdef-point2d⑦">(2)</a>
    <li><a href="#ref-for-dictdef-point2d⑧">10. Photo Capabilities and Constrainable Properties</a> <a href="#ref-for-dictdef-point2d⑨">(2)</a>
    <li><a href="#ref-for-dictdef-point2d①⓪">12. Point2D</a> <a href="#ref-for-dictdef-point2d①①">(2)</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="dom-point2d-x">
   <b><a href="#dom-point2d-x">#dom-point2d-x</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-dom-point2d-x">10. Photo Capabilities and Constrainable Properties</a>
    <li><a href="#ref-for-dom-point2d-x">12. Point2D</a>
   </ul>
  </aside>
  <aside class="dfn-panel" data-for="dom-point2d-y">
   <b><a href="#dom-point2d-y">#dom-point2d-y</a></b><b>Referenced in:</b>
   <ul>
    <li><a href="#ref-for-dom-point2d-y">10. Photo Capabilities and Constrainable Properties</a>
    <li><a href="#ref-for-dom-point2d-y">12. Point2D</a>
   </ul>
  </aside>
<script>/* script-dfn-panel */

document.body.addEventListener("click", function(e) {
    var queryAll = function(sel) { return [].slice.call(document.querySelectorAll(sel)); }
    // Find the dfn element or panel, if any, that was clicked on.
    var el = e.target;
    var target;
    var hitALink = false;
    while(el.parentElement) {
        if(el.tagName == "A") {
            // Clicking on a link in a <dfn> shouldn't summon the panel
            hitALink = true;
        }
        if(el.classList.contains("dfn-paneled")) {
            target = "dfn";
            break;
        }
        if(el.classList.contains("dfn-panel")) {
            target = "dfn-panel";
            break;
        }
        el = el.parentElement;
    }
    if(target != "dfn-panel") {
        // Turn off any currently "on" or "activated" panels.
        queryAll(".dfn-panel.on, .dfn-panel.activated").forEach(function(el){
            el.classList.remove("on");
            el.classList.remove("activated");
        });
    }
    if(target == "dfn" && !hitALink) {
        // open the panel
        var dfnPanel = document.querySelector(".dfn-panel[data-for='" + el.id + "']");
        if(dfnPanel) {
            dfnPanel.classList.add("on");
            var rect = el.getBoundingClientRect();
            dfnPanel.style.left = window.scrollX + rect.right + 5 + "px";
            dfnPanel.style.top = window.scrollY + rect.top + "px";
            var panelRect = dfnPanel.getBoundingClientRect();
            var panelWidth = panelRect.right - panelRect.left;
            if(panelRect.right > document.body.scrollWidth && (rect.left - (panelWidth + 5)) > 0) {
                // Reposition, because the panel is overflowing
                dfnPanel.style.left = window.scrollX + rect.left - (panelWidth + 5) + "px";
            }
        } else {
            console.log("Couldn't find .dfn-panel[data-for='" + el.id + "']");
        }
    } else if(target == "dfn-panel") {
        // Switch it to "activated" state, which pins it.
        el.classList.add("activated");
        el.style.left = null;
        el.style.top = null;
    }

});
</script>